15.1 Multi_Mesh Class

The Multi_Mesh Class is used to describe a mesh in the CÆSAR Code Package.

The following is incomplete documentation - or rather documentation in the middle of being written.

Dims Uniformity Orthogonality Structure AMR Cell-Shape Geometry ------------------------------------------------------------------------------ 1 Uniform Orthogonal Structured no Segmented x-Cartesian 1 Uniform Orthogonal Structured no Segmented r-Cylindrical 1 Uniform Orthogonal Structured no Segmented r-Spherical 1 Nonuniform Orthogonal Structured no Segmented x-Cartesian 1 Nonuniform Orthogonal Structured no Segmented r-Cylindrical 1 Nonuniform Orthogonal Structured no Segmented r-Spherical 1 Nonuniform Orthogonal Unstructured no Segmented x-Cartesian 1 Nonuniform Orthogonal Unstructured no Segmented r-Cylindrical 1 Nonuniform Orthogonal Unstructured no Segmented r-Spherical 2 Uniform Orthogonal Structured no Quadrilateral xy-Cartesian 2 Uniform Orthogonal Structured no Quadrilateral rz-Cylindrical 2 Nonuniform Orthogonal Structured no Quadrilateral xy-Cartesian 2 Nonuniform Orthogonal Structured no Quadrilateral rz-Cylindrical 2 Nonuniform Nonorthogonal Structured no Quadrilateral xy-Cartesian 2 Nonuniform Nonorthogonal Structured no Quadrilateral rz-Cylindrical 2 Uniform Orthogonal Structured yes Quadrilateral xy-Cartesian 2 Uniform Orthogonal Structured yes Quadrilateral rz-Cylindrical 2 Nonuniform Orthogonal Structured yes Quadrilateral xy-Cartesian 2 Nonuniform Orthogonal Structured yes Quadrilateral rz-Cylindrical 2 Nonuniform Nonorthogonal Structured yes Quadrilateral xy-Cartesian 2 Nonuniform Nonorthogonal Structured yes Quadrilateral rz-Cylindrical 2 Nonuniform Nonorthogonal Unstructured no Quadrilateral xy-Cartesian 2 Nonuniform Nonorthogonal Unstructured no Quadrilateral rz-Cylindrical 2 Nonuniform Nonorthogonal Unstructured yes Quadrilateral xy-Cartesian 2 Nonuniform Nonorthogonal Unstructured yes Quadrilateral rz-Cylindrical 2 Nonuniform Nonorthogonal Unstructured no Triangular xy-Cartesian 2 Nonuniform Nonorthogonal Unstructured no Triangular rz-Cylindrical 2 Nonuniform Nonorthogonal Unstructured no Polygonal xy-Cartesian 2 Nonuniform Nonorthogonal Unstructured no Polygonal rz-Cylindrical 3 Uniform Orthogonal Structured no Hexahedral xyz-Cartesian 3 Nonuniform Orthogonal Structured no Hexahedral xyz-Cartesian 3 Nonuniform Nonorthogonal Structured no Hexahedral xyz-Cartesian 3 Uniform Orthogonal Structured yes Hexahedral xyz-Cartesian 3 Nonuniform Orthogonal Structured yes Hexahedral xyz-Cartesian 3 Nonuniform Nonorthogonal Structured yes Hexahedral xyz-Cartesian 3 Nonuniform Nonorthogonal Unstructured no Hexahedral xyz-Cartesian 3 Nonuniform Nonorthogonal Unstructured yes Hexahedral xyz-Cartesian 3 Nonuniform Nonorthogonal Unstructured no Tetrahedral xyz-Cartesian 3 Nonuniform Nonorthogonal Unstructured no Polyhedral xyz-Cartesian In general, treat the mesh as: * Nonuniform Nonorthogonal Unstructured * * if-check where *-values are mostly handled inside the parallel data structures. Implications: Uniform meshes must be structured. 1-D meshes must be orthogonal. 2-D means "not spherical".

Mesh Nomenclature

A mesh consists of a collection of spatial locations or points, called nodes, that are connected in various ways to define distinct spatial volumes, called cells, and to define surface areas, called faces, between the cells and on the boundaries of the mesh.

In a three-dimensional mesh, nodes are zero-dimensional, faces are
two-dimensional^{15.1}, and cells
are three-dimensional.

In a two-dimensional mesh, nodes are zero-dimensional, faces are one-dimensional (with a suppressed second dimension), and cells are two-dimensional (with a suppressed third dimension).

In a one-dimensional mesh, nodes are zero-dimensional, faces are zero-dimensional (with two suppressed dimensions), and cells are one-dimensional (with two additional suppressed dimensions).

The connectivity of a mesh refers to the way that nodes are connected to form cells, and the way that cells are connected to each other. The connectivity of a mesh may be specified in several ways, but a common form gives the node numbers surrounding each cell in an array.

The cell-shape of a mesh is determined by the maximum allowed number of faces for a cell in the mesh. In some meshes, degenerate cells are allowed which have fewer than the maximum number of faces. For one-dimensional meshes, the only possible cell-shape is segmented, which refers to a line segment or bar as the representation of a cell. For two-dimensional meshes, the possible cell-shapes are triangular, quadrilateral, or polygonal. For three-dimensional meshes, the possible cell-shapes are tetrahedral, hexahedral, or polyhedral.

The geometry of a mesh refers to both the coordinate system used by
the mesh and the common names for the coordinate axes that are not suppressed.
With a Cartesian coordinate system, using the common names of *x*, *y*, and *z*
for the axes, the possible geometries are *x*-Cartesian, *xy*-Cartesian, and
*xyz*-Cartesian. With a cylindrical coordinate system, using the common names
of *r*, , and *z* for the axes, the possible unique geometries are
*r*-Cylindrical, -Cylindrical, *r*-Cylindrical, *rz*-Cylindrical,
and
*r**z*-Cylindrical. With a spherical coordinate system, using the
common names of *r*, (azimuth, range of 0-2), and (zenith,
range of 0-) for the axes, the possible unique geometries are
*r*-Spherical, -Spherical, -Spherical, *r*-Spherical,
*r*-Spherical,
-Spherical, and
*r*-Spherical. In
CÆSAR only the major geometries are included, namely *x*-Cartesian,
*r*-Cylindrical, *r*-Spherical, *xy*-Cartesian, *rz*-Cylindrical, and
*xyz*-Cartesian.

Mesh Type Descriptions:

In the mesh descriptions that follow, distinctions are made for the connectivity of the mesh

**Unstructured Polyhedral or Polygonal Mesh****A mesh is said to be structured, or logically rectangular,**- if
its nodes and cells can be numbered with an index for each dimension. For
example, in three dimensions every cell in a structured mesh can be referred to
by an
*i*,*j*,*k*triplet. In a structured mesh the connectivity is known a priori - mesh cell*i*,*j*,*k*shares a face with cells*i*+ 1,*j*,*k*,*i*- 1,*j*,*k*,*i*,*j*+ 1,*k*,*i*,*j*- 1,*k*,*i*,*j*,*k*+ 1, and*i*,*j*,*k*- 1 and is defined by nodes*i*,*j*,*k*,*i*+ 1,*j*,*k*,*i*,*j*+ 1,*k*,*i*+ 1,*j*+ 1,*k*,*i*,*j*,*k*+ 1,*i*,*j*,*k*+ 1,*i*+ 1,*j*,*k*+ 1,*i*,*j*+ 1,*k*+ 1, and*i*+ 1,*j*+ 1,*k*+ 1. Structured meshes must be formed from quadrilateral meshes in 2-D and hexahedral meshes in 3-D. **A mesh is said to be orthogonal**- if all of the mesh faces
are aligned with the coordinate axes. Thus, one can speak of a minus
*x*-face or a plus*y*-face of a cell with no ambiguity. All angles between faces are either zero or 90^{o}. Orthogonal meshes are composed of rectangles in 2-D and right rectangular prisms (also known as rectangular parallelepipeds) in 3-D. In addition, each face is planar in 3-D. **A uniform mesh**- has cells that all have the same shape and
size. All cells have the same volume and face areas. Stating a cell-width and
the number of cells in each direction completely specifies a uniform mesh.
Uniform meshes are composed of rectangles in 2-D and right rectangular prisms
(also known as rectangular parallelepipeds) in 3-D.
**AMR (Adaptive Mesh Refinement) meshes**- can be thought of as a halfway
point between quadrilateral/hexahedral cell-shapes and polygonal/polyhedral
cell-shapes.

Initialize (Mesh, "Uniform", Geometry, NDimensions, dx, dy, dz

Multi_Mesh public procedures:

Fundamental procedures |
|||

Initialize |
Initializes a Multi_Mesh object. | ||

Finalize |
Finalizes a Multi_Mesh object. | ||

Valid_State |
Returns false iff a Multi_Mesh object is in an invalid state. | ||

Initialized |
Returns true iff a Multi_Mesh object has been initialized. | ||

Operations |
|||

Name |
Returns the name of the Multi_Mesh object. | ||

Output |
Writes out the Multi_Mesh object. | ||

Set_Version |
Sets the version number of the Multi_Mesh object (also has an assignment interface). | ||

Version |
Returns the version number of the Multi_Mesh object. |

Multi_Mesh public defined type:

Multi_Mesh type |
|||

Initialized |
Initialization status. | ||

Name |
The name for this mesh. | ||

Version |
Version number which is incremented every time the array is modified, or is synced with the version number of a data structure that it depends on when it is updated. |

The Multi_Mesh Class code listing contains additional documentation. The Multi_Mesh Class also contains a Unit Test Program.

- 15.1.1 Initialize_Base_Multi_Mesh Procedure
- 15.1.2 Initialize_Uniform_Multi_Mesh Procedure
- 15.1.3 Initialize_Orthogonal_Multi_Mesh Procedure
- 15.1.4 Finalize_Multi_Mesh Procedure
- 15.1.5 Valid_State_Multi_Mesh Procedure
- 15.1.6 Initialized_Multi_Mesh Procedure
- 15.1.7 Dump_CGNS_Multi_Mesh Procedure
- 15.1.8 Dump_GMV_Multi_Mesh Procedure
- 15.1.9 Dump_GMV DV and MV Vector Procedures
- 15.1.10 Dump_XMGrace_Multi_Mesh Procedure
- 15.1.11 Dump_XMGrace DV and MV Vector Procedures
- 15.1.12 Get_Area_Faces_of_Cells_Multi_Mesh Procedure
- 15.1.13 Get_Coordinates_Cells_Multi_Mesh Procedure
- 15.1.14 Get_Coordinates_Cells_of_Cells_Multi_Mesh Procedure
- 15.1.15 Get_Coordinates_Faces_of_Cells_Multi_Mesh Procedure
- 15.1.16 Get_Coordinates_Nodes_of_Cells_Multi_Mesh Procedure
- 15.1.17 Get_DeltaR21_Cells_of_Cells_Multi_Mesh Procedure
- 15.1.18 Get_DeltaR1f_Cells_of_Cells_Multi_Mesh Procedure
- 15.1.19 Get_DeltaR2f_Cells_of_Cells_Multi_Mesh Procedure
- 15.1.20 Get_Flag_Faces_of_Cells_Multi_Mesh Procedure
- 15.1.21 Get Value Multi_Mesh Functions
- 15.1.22 Get_Version_Multi_Mesh Procedure
- 15.1.23 Get_Volume_Cells_Multi_Mesh Procedure
- 15.1.24 Set_Coordinates_Multi_Mesh Procedure
- 15.1.25 Set_Version_Multi_Mesh Procedure