Structural NodesΒΆ

CGNS Mid-Level Library - Structural Nodes

Structural Nodes

  • CGNS Base Information
    • cg_base_write - Create and/or write to a CGNS base node
    • cg_nbases - Get number of CGNS base nodes in file
    • cg_base_read - Read CGNS base information
    • cg_cell_dim - Get the cell dimension for the CGNS base
  • Zone Information
    • cg_zone_write - Create and/or write to a zone node
    • cg_nzones - Get number of zones in base
    • cg_zone_read - Read zone information
    • cg_zone_type - Get type of zone (structured or unstructured)
    • cg_index_dim - Get the index dimension for the CGNS zone
  • Simulation Type
    • cg_simulation_type_write - Write simulation type
    • cg_simulation_type_read - Read simulation type

CGNS Base Information

Node: CGNSBase_t (SIDS, File Mapping)

Functions Modes
ier = cg_base_write(int fn, char *basename, int cell_dim,
      int phys_dim, int *B);
- w m
ier = cg_nbases(int fn, int *nbases); r - m
ier = cg_base_read(int fn, int B, char *basename, int *cell_dim,
      int *phys_dim);
r - m
ier = cg_cell_dim(int fn, int B, int *cell_dim); r - m
call cg_base_write_f(fn, basename, cell_dim, phys_dim, B, ier) - w m
call cg_nbases_f(fn, nbases, ier) r - m
call cg_base_read_f(fn, B, basename, cell_dim, phys_dim, ier) r - m
call cg_cell_dim_f(fn, B, cell_dim, ier) r - m

Input/Output

    fn   CGNS file index number.
B Base index number, where 1 ≤ Bnbases.
nbases Number of bases present in the CGNS file fn.
basename Name of the base.
cell_dim Dimension of the cells; 3 for volume cells, 2 for surface cells and 1 for line cells.
phys_dim Number of coordinates required to define a vector in the field.
ier Error status.

Zone Information

Node: Zone_t (SIDS, File Mapping)

Functions Modes
ier = cg_zone_write(int fn, int B, char *zonename, cgsize_t *size,
      ZoneType_t zonetype, int *Z);
- w m
ier = cg_nzones(int fn, int B, int *nzones); r - m
ier = cg_zone_read(int fn, int B, int Z, char *zonename,
      cgsize_t *size);
r - m
ier = cg_zone_type(int fn, int B, int Z, ZoneType_t *zonetype); r - m
ier = cg_index_dim(int fn, int B, int Z, int *index_dim); r - m
call cg_zone_write_f(fn, B, zonename, size, zonetype, Z, ier) - w m
call cg_nzones_f(fn, B, nzones, ier) r - m
call cg_zone_read_f(fn, B, Z, zonename, size, ier) r - m
call cg_zone_type_f(fn, B, Z, zonetype, ier) r - m
call cg_index_dim_f(fn, B, Z, index_dim, ier) r - m

Input/Output

    fn   CGNS file index number.
B Base index number, where 1 ≤ Bnbases.
Z Zone index number, where 1 ≤ Znzones.
nzones Number of zones present in base B.
zonename Name of the zone.
size Number of vertices, cells, and boundary vertices in each (index)-dimension. For structured grids, the dimensions have unit stride in the array (e.g., [NVertexI, NVertexJ, NVertexK, NCellI, NCellJ, NCellK, NBoundVertexI, NBoundVertexJ, NBoundVertexK]).

Note that for unstructured grids, the number of cells is the number of highest order elements. Thus, in three dimensions it's the number of 3-D cells, and in two dimensions it's the number of 2-D cells.

Also for unstructured grids, if the nodes are sorted between internal nodes and boundary nodes, the optional parameter NBoundVertex must be set equal to the number of boundary nodes. By default, NBoundVertex equals zero, meaning that the nodes are unsorted.

Note that a non-zero value for NBoundVertex only applies to unstructured grids. For structured grids, the NBoundVertex parameter always equals 0 in all directions.

Mesh Type   Size
3D structured NVertexI, NVertexJ, NVertexK
NCellI, NCellJ, NCellK
NBoundVertexI = 0, NBoundVertexJ = 0, NBoundVertexK = 0
2D structured NVertexI, NVertexJ
NCellI, NCellJ
NBoundVertexI = 0, NBoundVertexJ = 0
3D unstructured NVertex, NCell3D, NBoundVertex
2D unstructured NVertex, NCell2D, NBoundVertex

zonetype Type of the zone. The admissible types are Structured and Unstructured.
index_dim Index dimension for the zone. For Structured zones, this will be the base cell dimension and for Unstructured zones it will be 1
ier Error status.

Note: When a CGNS file is opened via the cg_open() MLL function, the zones are sorted alphanumerically by name (the creation order is ignored/discarded). This mechanism is provided to enable ordinal zone indexing. Therefore, if ordinal zone indexing is desired, it is considered good standard practice to always choose zone names to be alphabetically increasing. For example, Zone0001, Zone0002, etc. is appropriate for up to 9999 zones.

(Important: Because the cgnsview tool uses the low-level cgio API, it does not sort the zones by name and zone order presented may not match that of the MLL API. Generally, cgnsview presents the zones in creation order for both ADF and HDF5 formats. One exception is CGNS files that are either created or opened using the HDF5 v1.6 library (or older) will always be presented alphabetically (creation order tracking was added to HDF5 in v1.8).)

Simulation Type

Node: SimulationType_t (SIDS, File Mapping)

Functions Modes
ier = cg_simulation_type_write(int fn, int B,
      SimulationType_t SimulationType);
- w m
ier = cg_simulation_type_read(int fn, int B,
      SimulationType_t SimulationType);
r - m
call cg_simulation_type_write_f(fn, B, SimulationType, ier) - w m
call cg_simulation_type_read_f(fn, B, SimulationType, ier) r - m

Input/Output

    fn   CGNS file index number.
B Base index number, where 1 ≤ Bnbases.
SimulationType Type of simulation. Valid types are CG_Null, CG_UserDefined, TimeAccurate, and NonTimeAccurate.
ier Error status.