The Cartesian mesh ( Nx x Ny cells in 2D) is decomposed by the Mesh object into a set ( Np > = 1 ) of rectangular non-overlapping patches which cover the mesh completely. A patch is fully defined with a set of corners and an array of integers. However, the data in a patch need to be expanded to accomodate the cell centered central difference stencil (ghost cells). That means that the data arrays of neighboring patches are overlapping in grid cell coordinates, therefore each of them must be described by a bigger ``patch'' called a Region. A Region is defined as a set of corners (Lower Corner or lbbc, Upper Corner or ubbc), a 1D data array and a pointer (reference) to the patch that corresponds to this Region. In Fig. A.1 we illustrate an example of a ( 3 x 3 ) patch and its ghost cells.
In memory the 1D data array for a Region maps to a 2D column-major array. Therefore given i, j in global 2D indexing the 1D local index is