The Mesh is an object (providing the mesh
interface) that addresses the discretization of the domain
using a Cartesian mesh. It decomposes the domain into a
set of rectangular subdomains called Regions (they have a
certain minimum size, so that they do not end up being just a single
grid cell) which are then distributed among various processors (see
Appendix A). The Mesh also allows the
creation of data objects (which provide the FieldVar
interface) on the Mesh. FieldVars can hold data at various times (this
is required if one uses a multistep time-integrator like
Crank-Nicholson) and this is reflected in the Mesh; i.e. it has a
concept of time steps. The Mesh also provides the ability to define
certain parameters which are common to all FieldVars e.g. the number
of cells in the halo around the domain boundary (so that, for example,
Neumann boundary conditions may be applied), and the radius of the
spatial stencil (which determines the width of the ghost-cell halos
one keeps around subdomains when computing in parallel). It also
allows the specification of the domain (in terms of size and the
Nx x Ny
grid cells itself) as well as the Collocation type (see
Chapter C).
2010-08-11