Detailed CGNS Node Descriptions

This section, together with the CGNS File Mapping Figures , constitutes a complete description of the CGNS database structure, together with detailed descriptions of the contents of each attribute of each node. It is intended to be suitable as a reference for anyone implementing CGNS within their own database manager or using the CGIO Core Routines . It should also be of interest to those wishing to understand exactly where information is stored within a CGNS database.

Note that it is the advertised purpose of the CGNS Mid-Level Library to store and retrieve information in conformity with the mapping herein described. Therefore, anyone accessing a CGNS database through the CGNS routines alone does not need a detailed understanding of the file mapping per se. However, this document should still prove useful in ascertaining the meaning of some of the arguments which must be supplied to the Library routines. Further, it will be necessary to consult the SIDS themselves to determine some of the naming conventions.

The node descriptions in this section are closely coupled to and cross-referenced with the CGNS File Mapping Figures , which show all the nodes defined in the SIDS that have child nodes. In the current section, the “Children:” entry in the list of Node Attributes is a link to the figure showing that node with its children. The “Label:” entry (or, in some cases, the “Name:” entry) is a link to the definition of the node’s data structure in the SIDS.

The nodal hierarchy of the CGNS database directly reflects that of the SIDS . Certain sections of the SIDS, notably Building-Block Structure Definitions , Data-Array Structure Definitions , and Miscellaneous Data Structures , describe basic data structures which appear repeatedly as children of nodes representing more complex structures. In order to simplify the presentation and avoid the introduction of undefined terms, this section has been divided into two parts. The first defines a number of basic types which recur often in the structure, and the second describes higher level nodes of more specific function built from the basic nodes

Basic CGNS Nodes

In this section we describe CGNS nodes which hold fundamental types of information. Their structure and function, which are the same everywhere, are described here. However, the meaning of the data they hold at any particular point in a CGNS database depends on the context, i.e., the parent node. Therefore, where necessary, any special context-dependent meaning is elaborated in the paragraph devoted to the parent.

Descriptor Group

These are user-assigned nodes designed to further describe the user’s intent. Their data is meant for human perusal or other user-designated purposes.

Descriptor_t

The purpose of a node of type Descriptor_t is to store textual data. It is not intended to be read by any system software, except to return the text for human examination.

The intent of the Descriptor_t node is to hold comment sufficient to allow someone other than the originator to understand what the node contains. This may consist of a problem description, reference documents, personal notes, etc.

Any node may have zero to many Descriptor_t children, with the uses differentiated by the Name field. At this time, there are no conventions for these names or for the form of the associated text. It is expected that a standard set such as README , TimeStamp , etc. will evolve as a matter of practice.

Node Attributes

Name:

User defined

Label:

Descriptor_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string to be stored, including any carriage control or null bytes.

Data:

String - Since line terminators can be stored within the data, the user could conceptually store an entire document in this area, read it into a program and then print it out. For example, an entire PostScript document describing the problem (and maybe results) could be stored in the Data field, read by a program and then sent to a printer.

Children:

None

Cardinality:

0, N

Ordinal_t

Because there is no notion of order among children, there is occasionally a desire to order children in a way that survives from one opening of a CGNS database to another. The current CGNS Library provides means of doing this. However, another early method was to place the node “number” in a child of type Ordinal_t .

Like Descriptor_t , the Ordinal_t node is completely under the control of the user, who takes full responsibility for its content. Unlike Descriptor_t , CGNS conventions do not encourage the use of Ordinal_t , as it usually encodes information which is redundant with the name. It is not read or written by standard CGNS software, and so there is no assurance that sibling nodes will be differently, consecutively, or consistently numbered by Ordinal_t . Clearly, if Ordinal_t must be used, no node should have more than one Ordinal_t child, and no two siblings should have Ordinal_t children containing the same data.

It is worth noting that, if consistent numbering is desired, one way of achieving it is to make the desired integer either the name or part of the name. In fact, if, for example, individual zones are left unnamed, the default convention will provide names of Zone1 , Zone2 , etc. Alternatively, the character strings “1 “, “2 “, …, are legal names. The CGNS software, of course, will return these as strings. This may necessitate type conversion or parsing before the names can be used as integer indices.

Node Attributes

Name:

Ordinal

Label:

Ordinal_t

DataType:

I4

Dimension:

1

Dimension Values:

1

Data:

The user-defined ordinal number (an integer).

Children:

None

Cardinality:

0,1

Physical Data Group

DataClass_t

A DataClass_t node specifies the dimensional nature of the data in and below its parent. It overrides any DataClass_t information higher up in the tree. There are six recognized string values. It is necessary to consult the SIDS to determine the precise meaning.

Node Attributes

Name:

DataClass

Label:

DataClass_t

DataType:

C1

Dimension:

1

Dimension Values:

The length of the string

Data:

One of: DataClassNull , DataClassUserDefined , Dimensional , NormalizedByDimensional , NormalizedByUnknownDimensional , NondimensionalParameter , or DimensionlessConstant

Children:

None

Cardinality:

0,1

DimensionalUnits_t

A DimensionalUnits_t node specifies dimensional units which apply to data in and below its parent. It overrides any DimensionalUnits_t information higher up in the tree. There are five strings to specify, corresponding, respectively, to units for mass, length, time, temperature, and angular measure. The number of recognized string values varies with the physical property.

Units for three additional types of data are specified in a child node, AdditionalUnits_t .

Node Attributes

Name:

DimensionalUnits

Label:

DimensionalUnits_t

DataType:

C1

Dimension:

2

Dimension Values:

(32,5)

Data:

For mass, one of:

MassUnitsNull , MassUnitsUserDefined , Kilogram , Gram , Slug , Pound-Mass

For length, one of:

LengthUnitsNull , LengthUnitsUserDefined , Meter , Centimeter , Millimeter , Foot , Inch

For time, one of:

TimeUnitsNull , TimeUnitsUserDefined , Second

For temperature, one of:

TemperatureUnitsNull , TemperatureUnitsUserDefined , Kelvin , Celsius , Rankine , Fahrenheit

For angles, one of:

AngleUnitsNull , AngleUnitsUserDefined , Degree , Radian

Children:

See DimensionalUnits_t figure

Cardinality:

0,1

AdditionalUnits_t

An AdditionalUnits_t node specifies dimensional units for additional types of data. To maintain compatibility with earlier CGNS versions, this is an optional child node of DimensionalUnits_t . The specified units apply to data in and below the parent of the corresponding DimensionalUnits_t node, and override any AdditionalUnits_t information higher up in the tree. There are three strings to specify, corresponding, respectively, to units for electric current, substance amount, and luminous intensity. The number of recognized string values varies with the physical property.

Node Attributes

Name:

AdditionalUnits

Label:

AdditionalUnits_t

DataType:

C1

Dimension:

2

Dimension Values:

(32,3)

Data:

For electric current, one of:

ElectricCurrentUnitsNull , ElectricCurrentUnitsUserDefined , Ampere , Abampere , Statampere , Edison , auCurrent

For substance amount, one of:

SubstanceAmountUnitsNull , SubstanceAmountUnitsUserDefined , Mole , Entities , StandardCubicFoot , StandardCubicMeter

For luminous intensity, one of:

LuminousIntensityUnitsNull , LuminousIntensityUnitsUserDefined , Candela , Candle , Carcel , Hefner , Violle

Children:

None

Cardinality:

0,1

DataConversion_t

A DataConversion_t node specifies a non-homogeneous linear function which converts non-dimensional data in its parent to raw dimensional data. Although in principle it overrides any DataConversion_t information higher up in the tree, it is generally not meaningful for it to apply to more than one kind of physical data. Therefore, CGNS specifies its use only as a child of a node which actually contains a single type of real data.

There are two values to specify, corresponding to the scale factor and offset. The SIDS contain the exact conversion formula.

Node Attributes

Name:

DataConversion

Label:

DataConversion_t

DataType:

R4 or R8

Dimension:

1

Dimension Values:

2

Data:

ConversionScale , ConversionOffset

Children:

None

Cardinality:

0,1

DimensionalExponents_t

A DimensionalExponents_t node specifies the powers of mass, length, time, temperature, and angular measure which characterize dimensional data in its parent. Although in principle it overrides any DimensionalExponents_t information higher up in the tree, it is generally not meaningful for it to apply to more than one kind of physical data. Therefore, CGNS specifies its use only as a child of a node which actually contains a single type of real data. There are five values to specify, corresponding to the five types of units specified using DimensionalUnits_t . The data type is real, not integer.

Exponents for three additional types of data are specified in a child node, AdditionalExponents_t .

Node Attributes

Name:

DimensionalExponents

Label:

DimensionalExponents_t

DataType:

R4 or R8

Dimension:

1

Dimension Values:

5

Data:

MassExponent , LengthExponent , TimeExponent , TemperatureExponent , AngleExponent

Children:

See DimensionalExponents_t figure

Cardinality:

0,1

AdditionalExponents_t

An AdditionalExponents_t node specifies the powers of the units for additional types of data, which characterize the corresponding dimensional data. There are three values to specify, corresponding to the three types of units specified using AdditionalUnits_t . The data type is real, not integer.

Node Attributes

Name:

AdditionalExponents

Label:

AdditionalExponents_t

DataType:

R4 or R8

Dimension:

1

Dimension Values:

3

Data:

ElectricCurrentExponent, SubstanceAmountExponent, LuminousIntensityExponent

Children:

None

Cardinality:

0,1

DataArray_t

A DataArray_t node is a very general type of node meant to hold large arrays of data, such as grids and flowfields. Often, some of the attributes of a DataArray_t node depend on the context in which the node is found; that is, they are structure parameters.

For example, the SIDS specify that the Data Type of DataArray_t is a structure parameter, “DataType “, which may assume any of the values ” :sidskey:`I n ` “, ” :sidskey:`R n ` “, or ” :sidskey:`C n ` “.

The other two attributes of DataArray_t , Dimensions and DataSize , also depend on the context where they are being used. Dimensions is a function of the underlying dimensionality of the data being described (often IndexDimension , defined in the CGNSBase_t node), and the DataSize may be inferred from detailed descriptions of the grid.

A node may have any number of DataArray_t children. The meaning of their contents is differentiated by Name, often according to conventions specified by the SIDS. SIDS names are usually precise and descriptive, such as CoordinateTheta or EnergyInternal . (See the SIDS for a current list of sanctioned names .) Conversely, quantities not specified by the SIDS can be stored in DataArray_t nodes, but should be given names other than those specified in the SIDS. In other words, to comply with the SIDS requires that one give a quantity the SIDS-defined name if and only if it is one of the SIDS-defined quantities.

Node Attributes

Name:

Context dependent

Label:

DataArray_t

DataType:

Context dependent

Dimension:

Context dependent

Dimension Values:

Context dependent

Data:

The array of data values

Children:

See DataArray_t figure

Cardinality:

0, N

Parameters:

DataType, dimension of the data, size of the data

Integer Arrays

Integer array nodes perform the same function as nodes of type DataArray_t , but store integer instead of real arrays. They are always of type int[] or cgsize_t[] , with the dimensions and values given either explicitly in the appropriate fields, or as parameters or functions. The cgsize_t data type is used wherever there is the potential of exceeding the size limit for a 32-bit integer (I4 ), such as PointList , PointRange , and ElementRange .

Node Attributes

Name:

Context dependent

Label:

int , int[IndexDimension] , int[2*IndexDimension] , or int[1 + ... + IndexDimension]

DataType:

I4 or cgsize_t

Dimension:

1

Dimension Values:

1, IndexDimension , 2*IndexDimension , or (1 + ... + IndexDimension)

Data:

The array of integer values

Cardinality:

0,1

Children:

None

Parameters:

IndexDimension or none (context dependent)

Location and Position Group

GridLocation_t

A GridLocation_t node specifies the physical location, with respect to the underlying grid, with which the field data below its parent is associated. The value (data field) is a character string of enumeration type, i.e., it must take one of a number of predefined values. These values are: Vertex , CellCenter , FaceCenter , IFaceCenter , JFaceCenter , KFaceCenter , or EdgeCenter . The strings are case sensitive, and an exact match is required. The GridLocation_t node is optional, and the default is Vertex .

Node Attributes

Name:

GridLocation

Label:

GridLocation_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of the string value

Data:

Vertex , CellCenter , FaceCenter , IFaceCenter , JFaceCenter , KFaceCenter , or EdgeCenter

Children:

None

Cardinality:

0,1

Rind_t

The presence of a Rind_t node indicates that field data stored below its parent includes values associated with a spatial extent beyond that of the basic underlying grid. Such data often arise from the use of ghost cells, or from the copying of information from adjacent zones.

Within a single zone, the size of the basic grid is found in the data field of the Zone_t node . The data field of a Rind_t node contains integers specifying the number of planes (for structured grids) or number of rind points or elements (for unstructured grids) of included extra data. The planes for structured grids correspond to the low and high values in the i -direction, low and high values in the j -direction, and low and high values in the k -direction (if needed), in that order. Note that the actual size of the field data, which is stored in a DataArray_t sibling node, is a DataSize structure parameter which depends on the basic grid size, the GridLocation , and the Rind .

The Rind_t node is optional, and the default is no rind.

Node Attributes

Name:

Rind

Label:

Rind_t

DataType:

I4

Dimension:

1

Dimension Values:

2*IndexDimension

Data:

Number of planes of extra data in low i , high i , low j , high j , etc., (for structured grids) or number of points or elements of extra data (for unstructured grids)

Children:

None

Cardinality:

0,1

Parameters:

IndexDimension

IndexRange_t

An IndexRange_t node describes a subregion of a zone. This may be, for example, a sub-block or a portion of a face of a zone. It may be used to describe the locations of boundary condition patches and holes for overset grids.

Node Attributes

Name:

PointRange , PointRangeDonor , ElementRange , or user defined

Label:

IndexRange_t

DataType:

cgsize_t

Dimension:

2

Dimension Values:

IndexDimension , 2

Data:

First indices, last indices

Children:

None

Cardinality:

Context dependent

Parameters:

IndexDimension

IndexArray_t

An IndexArray_t node describes a general subregion of a zone. Unlike IndexRange_t , it lists all the elements of the subregion, rather then only the first and last ones. Its use is similar to IndexRange_t .

Node Attributes

Name:

PointList , PointListDonor , CellListDonor , or InwardNormalList

Label:

IndexArray_t

DataType:

cgsize_t , or (for InwardNormalList ) R4 or R8

Dimension:

2

Dimension Values:

IndexDimension , number of items in the list; or (for InwardNormalList ) PhysicalDimension , number of items in the list

Data:

Index coordinates of each point or element in the list, or (for InwardNormalList ) physical-space normal vectors at each point or element in the list

Children:

None

Cardinality:

0,1

Parameters:

IndexDimension , either PointListSize or ListLength , and DataType ; or (for InwardNormalList ) PhysicalDimension , ListLength , and DataType

Auxiliary Data Group

ReferenceState_t

The appearance of a ReferenceState_t node is optional. It is used to specify the values of flow quantities at reference conditions, e.g., at freestream or stagnation. This is typically done for the whole database, in which case the ReferenceState_t node is a child of the CGNSBase_t node.

ReferenceState_t nodes follow the usual convention that information specified lower in the tree overrides higher level specifications. Such overrides are therefore specified if a ReferenceState_t node appears as a child of a Zone_t , ZoneBC_t , or BCDataSet_t node.

The actual values are stored in one or more DataArray_t children whose names identify the quantities being stored. If present, the units specified in the DimensionalUnits_t child apply to all DataArray_t children, subject to the usual override convention. ( I.e., if one of the DataArray_t children itself has a DimensionalUnits_t child, it takes precedence over the higher level specification.)

Node Attributes

Name:

ReferenceState

Label:

ReferenceState_t

DataType:

MT

Children:

See ReferenceState_t figure`

Cardinality:

0,1

ConvergenceHistory_t

ConvergenceHistory_t nodes are intended for the storage of lists of quantities accumulated during calculations associated with either the entire CGNS database or with a single zone.

In the former case, they are called Global convergence histories, and appear as children of the CGNSBase_t node. In the latter, they are called Local and stored below, with the zones to which they correspond.

Each ConvergenceHistory_t node is a parent of a collection of one-dimensional DataArray_t nodes, each of which contains a list of values of a quantity defined by the user. These quantities are differentiated by their user-assigned Names. User definitions of the names are recorded in a Descriptor_t child node with Name NormDefinitions . Children of types DataClass_t and DimensionalUnits_t modify the meaning of the DataArray_t children in the usual manner.

Node Attributes

Name:

GlobalConvergenceHistory if under a CGNSBase_t node; ZoneConvergenceHistory if under a Zone_t node

Label:

ConvergenceHistory_t

DataType:

I4

Dimension:

1

Dimension Values:

1

Data:

Number of iterations

Children:

See ConvergenceHistory_t figure`

Cardinality:

0,1

IntegralData_t

IntegralData_t nodes are intended for the storage of integrated flow quantities such as mass flows, forces and moments. These are kept in DataArray_t children just as in the ConvergenceHistory_t nodes, except that these nodes hold only one real number each.

Node Attributes

Name:

User defined

Label:

IntegralData_t

DataType:

MT

Children:

See IntegralData_t figure`

Cardinality:

0, N

UserDefinedData_t

UserDefinedData_t nodes are intended as a means of storing arbitrary user-defined data in Descriptor_t and DataArray_t children without the restrictions or implicit meanings imposed on these node types at other node locations.

Multiple Descriptor_t and DataArray_t children may be stored below a UserDefinedData_t node, and the DataArray_t children may be of any dimension and size.

Node Attributes

Name:

User defined

Label:

UserDefinedData_t

DataType:

MT

Children:

See UserDefinedData_t figure`

Cardinality:

0, N

Gravity_t

An optional Gravity_t node may be used to define the gravitational vector.

Node Attributes

Name:

Gravity

Label:

Gravity_t

DataType:

MT

Children:

See Gravity_t figure`

Cardinality:

0,1

Specialized Nodes

In this section we describe nodes whose use is specialized to certain types of CFD-related data. Although these nodes may appear in multiple places in a CGNS DataBase, they play a single role in the description of the data.

Grid Specification

CGNS recognizes the notion of a collection of subdomains called zones, within each of which there is a single structured or unstructured grid. Mathematically, the grid is an assignment of a location in physical space to each element in a discrete computational space. An essential feature of the grid is the connection structure it inherits from the underlying computational space.

It is possible, given a grid, to create others from it, by translation to cell centers, for example. However, CGNS views these as new field structures associated with the original grid, and the File Mapping specifies that they be stored as FlowSolution_t or DiscreteData_t nodes .

GridCoordinates_t

A GridCoordinates_t node describes a grid associated with a single zone. For a structured zone, the connection structure of the underlying computational space is that of a rectangular array, and its dimension is the IndexDimension , that is, the number of integers required to identify a point in the grid. The physical dimension is the number of real coordinates assigned at each grid point and need not be the same. Thus CGNS can store a grid, for example, with IndexDimension equal to two and a physical dimension of three, that is, a structured grid on a curved surface.

IndexDimension is a zone dependent parameter. For an unstructured grid, it always equals one, meaning that a unique index is required to specified a node location. For a structured grid, IndexDimension varries with the CellDimension of the mesh. For a mesh composed of 3D cells, IndexDimension equals 3, while for a mesh composed of surface or shell elements, IndexDimension equals 2. The values of the physical coordinates of the grid points are stored in DataArray_t children of GridCoordinates_t . The names of the coordinates are stored in the Name field of the corresponding DataArray_t node. For common coordinate systems, i.e., Cartesian, polar, cylindrical, and spherical, the names are specified by the SIDS.

Unlike FlowSolution_t and DiscreteData_t nodes , GridCoordinates_t nodes are not permitted to have GridLocation_t children, because all grid points are at vertices by definition.

Coordinate arrays may also contain rind data. If they do, the GridCoordinates_t node must have a Rind_t child node describing the amount of rind. All DataArray_t nodes under GridCoordinates_t must have the same size. Because the number of field quantities to be stored depends on the number of rind, the actual dimension values are functions, specified in this document by the generic term DataSize[] .

Under each node of type Zone_t , the original grid is contained in a node named GridCoordinates . Additional GridCoordinates_t data structures are allowed, with user-defined names, to store the grid at multiple time steps or iterations.

Node Attributes

Name:

GridCoordinates or user defined

Label:

GridCoordinates_t

DataType:

MT or R4 or R8

Dimension:

2

Dimension Values:

PhysicalDimension , 2

Data:

BoundingBox values

Children:

See GridCoordinates_t figure`

Cardinality:

0, N

Parameters:

IndexDimension , VertexSize , PhysicalDimension

Functions:

DataSize

Elements_t

The Elements_t data structure is required for unstructured zones, and contains the element connectivity data, the element type, the element range, the parent elements data, and the number of boundary elements.

Node Attributes

Name:

User defined

Label:

Elements_t

DataType:

I4

Dimension:

1

Dimension Values:

2

Data:

ElementType value, ElementSizeBoundary

Children:

See Elements_t figure`

Cardinality:

0, N

Axisymmetry_t

The Axisymmetry_t data structure may be included as a child of the CGNSBase_t node to record the axis of rotation and the angle of rotation around this axis for an axisymmetric database.

Node Attributes

Name:

Axisymmetry

Label:

Axisymmetry_t

DataType:

MT

Children:

See Axisymmetry_t figure`

Cardinality:

0,1

RotatingCoordinates_t

The RotatingCoordinates_t data structure may be included as a child of either the CGNSBase_t node or a Zone_t node to record the center of rotation and the rotation rate vector for a rotating coordinate system.

Node Attributes

Name:

RotatingCoordinates

Label:

RotatingCoordinates_t

DataType:

MT

Children:

See RotatingCoordinates_t figure`

Cardinality:

0,1

Field Specification

The object of computational field physics is to compute fields of physical data associated with points in space.

FlowSolution_t

A FlowSolution_t node describes a field of physical data associated with the grid for a single zone. It is intended for the storage of computed flowfield data such as densities and pressures. There is no convention as to how many or what kind of quantities must or may be stored. In particular, it is not specified that the quantities need in any sense be either complete or non-redundant.

The data are stored in DataArray_t children of FlowSolution_t . These DataArray_t nodes are dimensioned by the same underlying IndexDimension parameter as the grid, and the order of storage within the DataArray_t nodes is presumed the same as it is for the grid. The names of the physical quantities are stored in the Name field of the corresponding DataArray_t node. For common fluid dynamic quantities the names are specified by the SIDS .

The relationship between the locations of the field quantities and the vertices of the grid is specified by a GridLocation_t child node. If this node is absent, the field quantities are assumed to be associated with the grid vertices. Field arrays may also contain rind data. If they do, the FlowSolution_t node must have a Rind_t child node describing the amount of rind. All DataArray_t nodes under a single FlowSolution_t must have the same size. Field arrays containing different numbers of rind must be stored under different FlowSolution_t nodes. There may be any number of nodes of type FlowSolution_t under a Zone_t .

Because the number of field quantities to be stored depends on the number of rind and on the location with respect to the grid, the actual dimension values are functions, specified in this document by the generic term DataSize[] .

The meaning of the field arrays is modified in the usual way by any DataClass_t or DimensionalUnits_t children of the FlowSolution_t node.

Node Attributes

Name:

User defined

Label:

FlowSolution_t

DataType:

MT

Children:

See FlowSolution_t figure`

Cardinality:

0, N

Parameters:

IndexDimension , VertexSize , CellSize

Functions:

DataSize

DiscreteData_t

DiscreteData_t nodes are identical to FlowSolution_t nodes, but are intended for the storage of fields of real data not usually identified as part of the field solution, such as cell-centered grids.

Node Attributes

Name:

User defined

Label:

DiscreteData_t

DataType:

MT

Children:

See FlowSolution_t figure`

Cardinality:

0, N

Parameters:

IndexDimension , VertexSize , CellSize

Functions:

DataSize

ZoneSubRegion_t

The ZoneSubRegion_t node allows for the ability to give flowfield or other information over a subset of the entire zone in a CGNS file. This subset may be over a portion of a boundary, or it may be over a portion of the entire field.

Node Attributes

Name:

User defined

Label:

ZoneSubRegion_t

DataType:

I4

Dimension:

1

Dimension Values:

1

Data:

RegionCellDimension

Children:

See ZoneSubRegion_t figure`

Cardinality:

0, N

Parameters:

IndexDimension , VertexSize , CellSize

Functions:

DataSize

Connectivity Group

Transform Node

The Transform node is a node of type int[] which is identified by its name rather than its label. Thus the name must be “Transform “. It appears only as a child of a node of type GridConnectivity1to1_t .

This node stores the transformation matrix relating the indices of two adjacent zones. Its data field contains a list of IndexDimension signed integers, each within the range [-IndexDimension, ..., +IndexDimension] , and no two of which have the same absolute value. Thus in 3-D allowed components are \(0\), \(\pm 1\), \(\pm 2\), and \(\pm 3\). Each component of the array shows the image in the adjacent zone of a positive index increment in the current zone. The SIDS contain complete details.

Node Attributes

Name:

Transform

Label:

int[IndexDimension]

DataType:

I4

Dimension:

1

Dimension Values:

IndexDimension

Data:

Transformation matrix (shorthand)

Children:

None

Cardinality:

0,1

Parameters:

IndexDimension

GridConnectivityType_t

The purpose of this node is to describe the type of zone-to-zone connectivity specified by its parent, which is always a GridConnectivity_t node. The connectivity type is given in the data field as a character string which may take one of three specific values: Abutting , Abutting1to1 , or Overset .

There is a shorthand form of the GridConnectivity_t node, namely, GridConnectivity1to1_t , which incorporates the assumption that the connection is Abutting1to1 . Nodes of type GridConnectivity1to1_t do not have GridConnectivityType_t subnodes. However, GridConnectivity1to1_t nodes can only be used to specify zone-to-zone connections on rectangular subregions between two structured zones. So the use of GridConnectivityType_t subnodes to specify Abutting1to1 is required if the connecting regions are not rectangular, or if the connectivity involves a least one unstructured zone.

Node Attributes

Name:

GridConnectivityType

Label:

GridConnectivityType_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

Abutting , Abutting1to1 , or Overset

Children:

None

Cardinality:

0,1

GridConnectivity1to1_t

This node is a shorthand format of GridConnectivity_t capable of describing only Abutting1to1 connections between two structured zones. The underlying subregion must have rectangular data structure.

Each GridConnectivity1to1_t node describes a subregion of a face of a zone whose vertices are coincident in a 1-to-1 fashion with those of a corresponding subregion of a face of another zone. Each ZoneGridConnectivity_t node may have as many GridConnectivity1to1_t (or GridConnectivity_t ) children as are required to describe the connection structure.

The location of the connected subregion of a face of the current zone is given in a single child of type IndexRange_t , whose name is specified by the mapping as “PointRange “. The location of the corresponding subregion on a face of the other zone is given in a single child of type IndexRange_t , whose name is specified by the mapping as “PointRangeDonor “. The first (i.e., beginning) points in these IndexRange_t nodes are presumed to be coincident. The specification of the correspondence is completed by the inclusion of a Transform child node which describes the relative orientation of the two systems of indices. The second (i.e., end) point of the PointRange subnode specifies the extant of the connection.

In general, the File Mapping seeks to avoid the storage of redundant data. However, there are two redundancies associated with GridConnectivity1to1_t . First, for the sake of symmetry, the information recorded here is duplicated (in reverse) in a corresponding node under the donor zone. It is expected that these two specifications will agree.

Second, the end point of the PointRangeDonor can be calculated from the other three points specified, along with the transform. However, the transform cannot be inferred from the four points. Therefore, the end point of the PointRangeDonor is considered to be redundant, and the three points and the transform are designated as the primary specification.

Node Attributes

Name:

User defined

Label:

GridConnectivity1to1_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

ZoneDonorName

Children:

See GridConnectivity1to1_t figure`

Cardinality:

0, N

Parameters:

IndexDimension

GridConnectivity_t

The GridConnectivity_t node is the most general format for describing grid connectivity. It can describe one-to-one, mismatched, and overset connectivity, and the underlying subregions of the connecting zones need not be rectangular.

Each GridConnectivity_t node describes a subregion of a zone which corresponds to a subregion of another zone. Each ZoneGridConnectivity_t node may have as many GridConnectivity_t (or GridConnectivity1to1_t ) children as are required to describe the connection structure.

The location of the connected subregion of the current zone is given in a single child of type either IndexRange_t or IndexArray_t , whose name is specified by the mapping as “PointRange ” or “PointList “, respectively.

If the grid connectivity is one-to-one, the corresponding subregion is defined with a single child of type IndexArray_t , whose name is specified by the mapping as “PointListDonor “. Otherwise, the corresponding subregion is defined by two child nodes, one defining the cells and the other the interpolation factors within the cells. See the SIDS for the complete description.

Node Attributes

Name:

User defined

Label:

GridConnectivity_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

ZoneDonorName

Children:

See GridConnectivity_t figure`

Cardinality:

0, N

Parameters:

IndexDimension , CellDimension

Functions:

PointListSize

GridConnectivityProperty_t

An optional GridConnectivityProperty_t node may be used to record special properties associated with particular connectivity patches.

Node Attributes

Name:

GridConnectivityProperty

Label:

GridConnectivityProperty_t

DataType:

MT

Children:

See GridConnectivityProperty_t figure`

Cardinality:

0,1

Periodic_t

A Periodic_t node may be used as a child of GridConnectivityProperty_t to record data associated with a periodic interface.

Node Attributes

Name:

Periodic

Label:

Periodic_t

DataType:

MT

Children:

See Periodic_t figure`

Cardinality:

0,1

AverageInterface_t

An AverageInterface_t node is used as a child of GridConnectivityProperty_t when data at the current connectivity interface is to be averaged in some way prior to passing it to a neighboring interface.

Node Attributes

Name:

AverageInterface

Label:

AverageInterface_t

DataType:

MT

Children:

See AverageInterface_t figure`

Cardinality:

0,1

OversetHoles_t

A node of type OversetHoles_t describes a region in a grid in which solution values are to be ignored because the data in the region is to be represented by values associated with other “overlapping” zones (equivalent to that specified by IBLANK = 0 in the PLOT3D format). Each ZoneGridConnectivity_t node may have as many OversetHoles_t children as are required to describe the affected region.

Each hole is described either by a single child of type IndexArray_t or by any number of children of type IndexRange_t . The latter is provided as a means of specifying holes which are unions of small numbers of logically rectangular subregions. However, if the region is irregular, the intent is that it should be specified by a single child of type IndexArray_t which lists the points.

Node Attributes

Name:

User defined

Label:

OversetHoles_t

DataType:

MT

Children:

See OversetHoles_t figure

Cardinality:

0, N

Parameters:

IndexDimension

ZoneGridConnectivity_t

Each Zone_t node may have zero or more children of type ZoneGridConnectivity_t . It holds no data, but serves as the point below which all connectivity data associated with the zone can be found. Multiple ZoneGridConnectivity_t nodes may be used to specify time-dependent changes in the connectivity information.

Node Attributes

Name:

ZoneGridConnectivity or user defined

Label:

ZoneGridConnectivity_t

DataType:

MT

Children:

See ZoneGridConnectivity_t figure`

Cardinality:

0,N

Parameters:

IndexDimension , CellDimension

Boundary Condition Group

Nodes in this group are used to specify the physical boundary conditions. Each boundary condition is associated with a subregion of a zone. For brevity below, we use the word “domain” to refer to the region on which a boundary condition is to be enforced.

The domain is usually, but not necessarily, a subregion of a face of the zone. The mapping is sufficiently general to permit the description of internal boundary conditions and boundary conditions which do not lie on a constant coordinate plane.

Mathematical boundary conditions are generally applied on subregions of physical dimension one less than the corresponding field problem. This condition, however, is neither defined nor enforced by the File Mapping.

A large number of standard boundary condition types` are named by the SIDS. In addition, it is possible to define new types as collections of Dirichlet and Neumann conditions. It is not possible to describe the entire array of possibilities within this document, and the reader should consult the SIDS for a full description.

InwardNormalIndex

An InwardNormalIndex node is a node of type int[IndexDimension] which is identified by its Name. It applies to structured grids only, and its function is to specify on which side of the domain the condition is to be enforced.

InwardNormalIndex may have only one nonzero element, whose sign indicates the computational-coordinate direction of the boundary condition patch normal; this normal points into the interior of the zone. For example, if the domain lies on the face of a three-dimensional zone where the second index is a maximum, the inward normal index values are [0,-1,0].

The InwardNormalIndex node must apply to the entire domain of the boundary condition.

For a boundary condition on a face of a zone, the InwardNormalIndex can be calculated from other data and need not be specified. Its purpose is to define the normal direction for internal boundary conditions and other cases where the direction is ambiguous.

Node Attributes

Name:

InwardNormalIndex

Label:

int[IndexDimension]

DataType:

I4

Dimension:

1

Dimension Values:

IndexDimension

Data:

Index of inward normal

Children:

None

Cardinality:

0,1

Parameters:

IndexDimension

InwardNormalList

An InwardNormalList node is a node of type IndexArray_t identified by its Name. Its data field contains an array of physical (real) vectors which point into the region on which the boundary condition is to be applied. It may be used for boundary conditions on complex domains for which InwardNormalIndex is not defined, or to store vectors orthogonal to the domain of the boundary condition where these are not easily calculated from the domain itself.

Node Attributes

Name:

InwardNormalList

Label:

IndexArray_t

DataType:

R4 or R8

Dimension:

2

Dimension Values:

PhysicalDimension , ListLength

Data:

Inward normal vectors

Children:

None

Cardinality:

0,1

Parameters:

PhysicalDimension , ListLength

BCData_t

When global or local Dirichlet or Neumann boundary conditions are defined, a node of type BCData_t is introduced to store the numerical data. For global data, this consists of a single quantity kept in a DataArray_t child. For local data, e.g., a pressure profile, it is a vector of quantities stored in an order corresponding to that defining the domain and kept in a child node of type DataArray_t .

Node Attributes

Name:

DirichletData or NeumannData

Label:

BCData_t

DataType:

MT

Children:

See BCData_t figure`

Cardinality:

0,1

Parameters:

ListLength

BCDataSet_t

The function of a BCDataSet_t node is to specify the equations to be applied at the boundary, including any actual data values which may be required. The type of the equation is specified by the SIDS and recorded in the data field. For some types, the data is implicit or empty. For others, the data is specified in BCData_t children.

If the locations at which the boundary conditions are to be applied are specified in BCDataSet_t , using PointRange or PointList , the structure function ListLength is used. Otherwise, the structure parameter ListLength is required.

Node Attributes

Name:

User defined

Label:

BCDataSet_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

BCTypeSimple value

Children:

See BCDataSet_t figure`

Cardinality:

0, N

Functions:

ListLength

Parameters:

ListLength

BC_t

A BC_t node specifies a single boundary condition to be applied on a single zone. It specifies the domain on which the condition is to be applied and the equations to be enforced. All the BC_t nodes for a single zone are found under that zone’s ZoneBC_t node. A ZoneBC_t node may have as many BC_t children as are required to describe the physical boundary conditions on the corresponding zone.

The domain on which the boundary condition is to be enforced is specified by a single node of type either IndexRange_t or IndexArray_t . The equations are specified in one or more BCDataSet_t children.

The type of the boundary condition, which may be either simple or compound, is specified in the data field. For a complete description, it is necessary to consult the SIDS.

Node Attributes

Name:

User defined

Label:

BC_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

BCType value

Children:

See BC_t figure`

Cardinality:

0, N

Parameters:

IndexDimension , PhysicalDimension

ZoneBC_t

The ZoneBC_t node occurs at most once for each zone and serves as the location under which all boundary conditions on that zone are collected.

Node Attributes

Name:

ZoneBC

Label:

ZoneBC_t

DataType:

MT

Children:

See ZoneBC_t figure`

Cardinality:

0,1

Parameters:

IndexDimension , PhysicalDimension

BCProperty_t

An optional BCProperty_t node may be used to record special properties associated with particular boundary condition patches.

Node Attributes

Name:

BCProperty

Label:

BCProperty_t

DataType:

MT

Children:

See BCProperty_t figure`

Cardinality:

0,1

WallFunction_t

A WallFunction_t node may be used as a child of BCProperty_t to record data associated with the use of wall function boundary conditions.

Node Attributes

Name:

WallFunction

Label:

WallFunction_t

DataType:

MT

Children:

See WallFunction_t figure`

Cardinality:

0,1

Area_t

An Area_t node may be used as a child of BCProperty_t to record data associated with area-related boundary conditions such as bleed.

Node Attributes

Name:

Area

Label:

Area_t

DataType:

MT

Children:

See Area_t figure`

Cardinality:

0,1

Equation Specification Group

Nodes in this group serve to identify the physical model associated with the data being recorded. Nearly always, the data is of enumeration type and is selected from a collection of terms defined in detail in the SIDS. The names are largely self explanatory, and the detailed definitions will not be repeated here. Numerical values associated with the physical model depend on the type of modeling being chosen and are generally stored in child nodes of type DataArray_t .

GoverningEquations_t

This node names the equation set being solved, for example, FullPotential or NSTurbulent . If Navier-Stokes, the diffusion terms retained may be specified in a DiffusionModel subnode.

Node Attributes

Name:

GoverningEquations

Label:

GoverningEquations_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

GoverningEquationsType value

Children:

See GoverningEquations_t figure`

Cardinality:

0,1

Parameters:

CellDimension

GasModel_t

A node of type GasModel_t names the gas model used, for example, Ideal or VanderWaals .

Node Attributes

Name:

GasModel

Label:

GasModel_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

GasModelType value

Children:

See GasModel_t figure`

Cardinality:

0,1

ViscosityModel_t

A node of type ViscosityModel_t names the molecular viscosity model used to relate the viscosity to the temperature, for example, PowerLaw or SutherlandLaw .

Node Attributes

Name:

ViscosityModel

Label:

ViscosityModel_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

ViscosityModelType value

Children:

See ViscosityModel_t figure`

Cardinality:

0,1

EquationDimension

A node named EquationDimension , of type int[] , gives the number of dependent variables required for a complete solution description, or the number of equations being solved. For example, for NSTurbulent with the \(k\)-\(\epsilon\) turbulence model in three dimensions, it is 7.

Node Attributes

Name:

EquationDimension

Label:

int

DataType:

I4

Dimension:

1

Dimension Values:

1

Data:

EquationDimension value

Children:

None

Cardinality:

0,1

ThermalConductivityModel_t

A node of type ThermalConductivityModel_t names the model used to relate the thermal conductivity to the temperature, for example, ConstantPrandtl , PowerLaw , or SutherlandLaw . These closely parallel the viscosity model.

Node Attributes

Name:

ThermalConductivityModel

Label:

ThermalConductivityModel_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

ThermalConductivityModelType value

Children:

See ThermalConductivityModel_t figure`

Cardinality:

0,1

TurbulenceClosure_t

A node of type TurbulenceClosure_t names the method of closing the Reynolds stress equations when the governing equations are turbulent, for example, EddyViscosity or ReynoldsStressAlgebraic .

Node Attributes

Name:

TurbulenceClosure

Label:

TurbulenceClosure_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

TurbulenceClosureType value

Children:

See TurbulenceClosure_t figure`

Cardinality:

0,1

TurbulenceModel_t

A node of type TurbulenceModel_t names the equation set used to model the turbulence quantities, for example, Algebraic_BaldwinLomax or OneEquation_SpalartAllmaras .

Node Attributes

Name:

TurbulenceModel

Label:

TurbulenceModel_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

TurbulenceModelType value

Children:

See TurbulenceModel_t figure`

Cardinality:

0,1

Parameters:

CellDimension

ThermalRelaxationModel_t

A node of type ThermalRelaxationModel_t names the equation set used to model the thermal relaxation quantities, for example, Frozen or ThermalEquilib .

Node Attributes

Name:

ThermalRelaxationModel

Label:

ThermalRelaxationModel_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

ThermalRelaxationModelType value

Children:

See ThermalRelaxationModel_t figure`

Cardinality:

0,1

ChemicalKineticsModel_t

A node of type ChemicalKineticsModel_t names the equation set used to model the chemical kinetics quantities, for example, Frozen and ChemicalEquilibCurveFit .

Node Attributes

Name:

ChemicalKineticsModel

Label:

ChemicalKineticsModel_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

ChemicalKineticsModelType value

Children:

See ChemicalKineticsModel_t figure`

Cardinality:

0,1

EMElectricFieldModel_t

A node of type EMElectricFieldModel_t names the electric field model used for electromagnetic flows, for example, Constant or Voltage .

Node Attributes

Name:

EMElectricFieldModel

Label:

EMElectricFieldModel_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

EMElectricFieldModelType value

Children:

See EMElectricFieldModel_t figure`

Cardinality:

0,1

EMMagneticFieldModel_t

A node of type EMMagneticFieldModel_t names the magnetic field model used for electromagnetic flows, for example, Constant or Interpolated.

Node Attributes

Name:

EMMagneticFieldModel

Label:

EMMagneticFieldModel_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

EMMagneticFieldModelType value

Children:

See EMMagneticFieldModel_t figure`

Cardinality:

0,1

EMConductivityModel_t

A node of type EMConductivityModel_t names the conductivity model used for electromagnetic flows, for example, Constant or Equilibrium_LinRessler .

Node Attributes

Name:

EMConductivityModel

Label:

EMConductivityModel_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

EMConductivityModelType value

Children:

See EMConductivityModel_t figure`

Cardinality:

0,1

FlowEquationSet_t

A node of type FlowEquationSet_t appears either at the highest level of the tree (under CGNSBase_t ), to indicate the equation set whose solution is recorded throughout the database, or below a Zone_t node, to indicate the set of equations solved in that zone. The usual convention applies, i.e., specifications at the local (zone) level override global specifications.

Node Attributes

Name:

FlowEquationSet

Label:

FlowEquationSet_t

DataType:

MT

Children:

See FlowEquationSet_t figure`

Cardinality:

0,1

Parameters:

CellDimension

Family Group

Because there is rarely a 1-to-1 connection between mesh regions and geometric entities, it is often desirable to set geometric associations indirectly in a CGNS file. That is, rather than setting the geometry data for each mesh entity (nodes, edges, and faces), it’s useful to associate them with intermediate objects. The intermediate objects are in turn linked to nodal regions of the computational mesh. This intermediate object is defined as a CFD family .

Each mesh surface may linked to the geometric entities of one or more CAD databases by a user-defined CFD family name. The CFD family corresponds to one or more CAD geometric entities on which the mesh face is projected. Each one of these geometric entities is described in a CAD file and is not redefined within the CGNS file.

Family_t

This node, a child of a CGNSBase_t node or a Family_t node, contains the definition of a single CFD family. Multiple Family_t nodes are allowed.

Node Attributes

Name:

User defined

Label:

Family_t

DataType:

MT

Children:

See Family_t figure`

Cardinality:

0, N

FamilyName_t

This node is used to identify a family to which a particular zone or boundary belongs. Note that the name of the family is defined by the “Name” of the Family_t node, and is stored as data in the FamilyName_t node.

Node Attributes

Name:

FamilyName or user defined

Label:

FamilyName_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

Name of CFD family

Children:

None

Cardinality:

0,1

AdditionalFamilyName_t

This node is a supplement to the FamilyName_t node, and is used to identify additional families to which a particular zone or boundary belongs.

Node Attributes

Name:

user defined

Label:

AdditionalFamilyName_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

Name of CFD family

Children:

None

Cardinality:

0,N

FamilyBC_t

This node contains a boundary condition type for a particular CFD family.

Node Attributes

Name:

FamilyBC

Label:

FamilyBC_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

BCType value

Children:

See FamilyBC_t figure`

Cardinality:

0,1

FamilyBCDataSet_t

A FamilyBCDataSet_t node contains Dirichlet and Neumann data for a single set of boundary condition equations to be applied to a Family. It’s intended use is for simple boundary condition types, where the equations imposed do not depend on local flow conditions.

Node Attributes

Name:

User defined

Label:

FamilyBCDataSet_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

BCTypeSimple value

Children:

See FamilyBCDataSet_t figure`

Cardinality:

0, N

GeometryReference_t

GeometryReference_t nodes are used to associate a CFD family with one or more CAD databases.

Node Attributes

Name:

User defined

Label:

GeometryReference_t

DataType:

MT

Children:

See GeometryReference_t figure`

Cardinality:

0, N

GeometryFile_t

This node contains the name of the CAD geometry file.

Node Attributes

Name:

GeometryFile

Label:

GeometryFile_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

Name of the CAD geometry file

Children:

None

Cardinality:

1

GeometryFormat_t

This enumeration node defines the format of the CAD geometry file.

Node Attributes

Name:

GeometryFormat

Label:

GeometryFormat_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

Name of the CAD geometry format

Children:

None

Cardinality:

1

GeometryEntity_t

GeometryEntity_t nodes define the names of the entities in CAD geometry file that make up a CFD family.

Node Attributes

Name:

User defined

Label:

GeometryEntity_t

DataType:

MT

Children:

None

Cardinality:

0, N

Time-Dependent Group

Nodes in this section are used for information related to time-dependent flows, and include specification of grid motion and storage of time-dependent or iterative data.

BaseIterativeData_t

Located directly under the CGNSBase_t node, the BaseIterativeData_t node contains information about the number of time steps or iterations being recorded, and the time and/or iteration values at each step. In addition, it may include the list of zones and families for each step of the simulation, if these vary throughout the simulation.

Node Attributes

Name:

User defined

Label:

BaseIterativeData_t

DataType:

I4

Dimension:

1

Dimension Values:

1

Data:

NumberOfSteps

Children:

See BaseIterativeData_t figure`

Cardinality:

0,1

ZoneIterativeData_t

The ZoneIterativeData_t node is a child of the Zone_t node, and is used to store pointers to zonal data for each recorded step of the simulation.

Node Attributes

Name:

User defined

Label:

ZoneIterativeData_t

DataType:

MT

Children:

See ZoneIterativeData_t figure`

Cardinality:

0,1

Parameters:

NumberOfSteps

RigidGridMotion_t

RigidGridMotion_t nodes are used to store data defining rigid translation and/or rotation of the grid coordinates. Multiple RigidGridMotion_t nodes may be associated with different iterations or time steps in the computation. This association is recorded under the ZoneIterativeData_t node.

Node Attributes

Name:

User defined

Label:

RigidGridMotion_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

RigidGridMotionType value

Children:

See RigidGridMotion_t figure`

Cardinality:

0, N

ArbitraryGridMotion_t

ArbitraryGridMotion_t nodes are used to store grid velocities for each grid point in a zone (i.e., for deforming grids). Multiple ArbitraryGridMotion_t nodes may be associated with different iterations or time steps in the computation. This association is recorded under the ZoneIterativeData_t node.

Note that instantaneous grid coordinates at different iterations or time steps may be recorded using multiple GridCoordinates_t nodes under a Zone_t node.

Node Attributes

Name:

User defined

Label:

ArbitraryGridMotion_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

ArbitraryGridMotionType value

Children:

See ArbitraryGridMotion_t figure`

Cardinality:

0, N

Parameters:

IndexDimension , VertexSize , CellSize

Functions:

DataSize

Structural Nodes

In this section we describe the highest levels of the hierarchy. Nodes in this section store only quantities which refer to all the entities below them. Therir primary function is to provide organization to the data below.

Zone_t

Directly below the highest level node in the database, which is by definition of type CGNSBase_t , are found nodes of type Zone_t providing entry into the data specific to each zone. There are as many Zone_t nodes as there are zones. Their children, in turn, record grid, field, connectivity, and boundary conditions, and a variety of auxiliary data.

Node Attributes

Name:

User defined

Label:

Zone_t

DataType:

cgsize_t

Dimension:

2

Dimension Values:

IndexDimension , 3

Data:

VertexSize[IndexDimension] , CellSize[IndexDimension] , VertexSizeBoundary[IndexDimension]

Children:

See Zone_t figure`

Cardinality:

0, N

Parameters:

CellDimension , PhysicalDimension

CGNSBase_t

The CGNSBase_t node is by definition the highest level node in the database, and is located directly below the database root node. It provides entry into all other data. Multiple CGNSBase_t nodes are allowed in a file. The particular database being accessed is determined by the name of the CGNSBase_t node.

The only data stored in the node itself are CellDimension , the dimensionality of a cell in the mesh (i.e., 3 for a volume cell and 2 for a face cell), and PhysicalDimension , the number of indices required to specify a unique physical location in the field data being recorded. However, a variety of global information concerning the entire database may be stored in children of the CGNSBase_t node. In particular, a Descriptor_t node at this level can store user commentary on the entire history of the development of the database.

Other information typically stored directly below the CGNSBase_t node includes convergence histories, reference states, dimensional units, integrated quantities, and information on the flow equations being solved.

Node Attributes

Name:

User defined

Label:

CGNSBase_t

DataType:

I4

Dimension:

1

Dimension Values:

2

Data:

CellDimension , PhysicalDimension

Children:

See CGNSBase_t figure`

Cardinality:

0, N

SimulationType_t

This enumeration-type node is a child of the CGNSBase_t node, and specifies whether or not the data below CGNSBase_t is time-accurate.

Node Attributes

Name:

SimulationType

Label:

SimulationType_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

TimeAccurate or NonTimeAccurate

Children:

None

Cardinality:

0,1

ZoneType_t

This enumeration-type node is a required child of the Zone_t node, and specifies whether the grid in that zone is structured or unstructured.

Node Attributes

Name:

ZoneType

Label:

ZoneType_t

DataType:

C1

Dimension:

1

Dimension Values:

Length of string

Data:

Structured or Unstructured

Children:

None

Cardinality:

1

CGNSLibraryVersion_t

A file containing a CGNS database also contains, directly below the root node, a CGNSLibraryVersion_t node. This node stores the version number of the CGNS standard with which the file is consistent, and is created automatically when the file is created or modified using the CGNS Mid-Level Library . Note that this node is not actually part of the CGNS database, since it is not located below a CGNSBase_t node.

Note that a file may contain multiple CGNS databases, but there is only one CGNSLibraryVersion_t node. It is assumed that the version number in the CGNSLibraryVersion_t node is applicable to all the CGNS databases in the file.

Note also that some CGNS nodes may actually be links to CGNS nodes in other files. In this case, it is assumed that the CGNSLibraryVersion_t node in the “top-level” file is applicable to the file(s) containing the linked nodes.

Node Attributes

Name:

CGNSLibraryVersion

Label:

CGNSLibraryVersion_t

DataType:

R4

Dimension:

1

Dimension Values:

1

Data:

CGNS version number

Children:

None

Cardinality:

1