Class Grid

Class Documentation

class Grid

The Grid class is designed to store the grid data of the FULL computational domain on the Host (i.e. of all of the MPI processes running). The domain decomposition is performed by the child instances of the DataBlock class, which are built on a Grid instance, using the cartesian MPI communicator of that Grid. Note that all of the arrays of a Grid are on the device. If a Host access is needed, it is recommended to use a GridHost instance from this Grid, and sync it.

Public Functions

explicit Grid(Input&)
void ShowConfig()
Grid() = default

Public Members

std::vector<IdefixArray1D<real>> x

geometrical central points

std::vector<IdefixArray1D<real>> xr

cell right interface

std::vector<IdefixArray1D<real>> xl

cell left interface

std::vector<IdefixArray1D<real>> dx

cell width

std::vector<real> xbeg

Beginning of grid.

std::vector<real> xend

End of grid.

std::vector<int> np_tot

total number of grid points (including ghosts)

std::vector<int> np_int

internal number of grid points (excluding ghosts)

std::vector<int> nghost

number of ghost cells

std::vector<BoundaryType> lbound

Boundary condition to the left.

std::vector<BoundaryType> rbound

Boundary condition to the right.

bool haveAxis = {false}

Do we require a special treatment of the axis in spherical coords?

GridCoarsening haveGridCoarsening = {GridCoarsening::disabled}

Is grid coarsening enabled?

std::vector<bool> coarseningDirection

whether a coarsening is used in each direction

std::vector<int> nproc

/< Total number of procs in each direction

std::vector<int> xproc

/< Coordinates of current proc in the array of procs