15.1.2 Initialize_Uniform_Multi_Mesh Procedure

The Initialize_Uniform_Multi_Mesh procedure allocates and initializes a
uniform Multi_Mesh object. A uniform mesh is a structured, orthogonal,
cartesian^{15.2} mesh where every
cell is exactly the same size and shape. There is a single *x*,
*y* and *z* for the entire mesh, which has a block-shaped
domain (i.e. a right rectangular prism in 3D). In parallel, each PE also
contains a block-shaped domain, but each PE may have a different-sized
block. An optimum partitioning of the mesh, given these constraints,
is generated by the Gen_StructureMesh_Connectivity procedure.

In addition to the mesh data set by the Initialize_Base_Multi_Mesh procedure, this procedure also sets the following uniform-specific mesh data:

- mesh cell-cell connectivity (Cells_of_Cells_Index),
- mesh face flags to indicate left (-x), right (+x), front (-y), back (+y), bottom (-z), top (+z) and interior faces (Flag_Faces_of_Cells),
- physical dimensions of the entire domain (Lengths),
- the volume of every cell (Volume_All_Cells), and
- the area for all faces (Area_All_Faces).

Calling syntax:

call Initialize (Mesh, NDimensions, Lengths, NCells_X_total,
NCells_Y_total, NCells_Z_total, Mesh_Name,
status) |

Input variables:

Mesh |
The Multi_Mesh object to be initialized. | ||

NDimensions |
The number of dimensions for the mesh. | ||

Lengths |
A vector of the physical lengths for the mesh. | ||

NCells_X_total |
Total number of cells in the X-direction, defined on every PE. | ||

NCells_Y_total |
Total number of cells in the Y-direction, defined on every PE. [Optional] | ||

NCells_Z_total |
Total number of cells in the Z-direction, defined on every PE. [Optional] | ||

Mesh_Name |
The name for this mesh. [Optional] |

Output variables:

Mesh |
The Multi_Mesh object has been allocated and initialized. | ||

status |
If present, the status variable is set to either
'Memory Error' or 'Success' depending
on program execution. If not present, the procedure
aborts if unsuccessful when the DEBUG_LEVEL
is set high enough. |

Internal variables:

allocate_status |
Allocation Status. | ||

consolidated_status |
Consolidated Status. |

The Initialize_Uniform_Multi_Mesh code listing contains additional documentation.

Michael L. Hall