Skip navigation links
(CGNS Documentation Home Page) (Steering Committee Charter) (Overview and Entry-Level Document) (A User's Guide to CGNS) (Mid-Level Library) (Standard Interface Data Structures) (SIDS File Mapping Manual) (CGIO User's Guide) (Parallel CGNS User's Guide) (ADF Implementation) (HDF5 Implementation) (Python Implementation) (CGNS Tools and Utilities)

(Introduction) (Design Philosophy of Standard Interface Data Structures) (Conventions) (Building-Block Structure Definitions) (Data-Array Structure Definitions) (Hierarchical Structures) (Grid Coordinates, Elements, and Flow Solution) (Multizone Interface Connectivity) (Boundary Conditions) (Governing Flow Equations) (Time-Dependent Flow) (Miscellaneous Data Structures) (Conventions for Data-Name Identifiers) (Structured Two-Zone Flat Plate Example)

1 Introduction

CGNS (CFD General Notation System) external link is a collection of conventions, along with software implementing those conventions, for the storage and retrieval of CFD (computational fluid dynamics) data. The CGNS system is designed to facilitate the exchange of data between sites and applications, as well as to help stabilize the archiving of fluid dynamic data. In today's environment, it is important in many technical arenas to maintain detailed records of scientific computations. CGNS was designed to help promote a long-lasting and extensible standard for this purpose. Many companies and institutions choose to adopt the CGNS standard in order to increase productivity by (1) reducing the time required to translate between data created and used by different applications, and (2) increasing the quality, longevity, and re-usability of archived data.

The CGNS standard is a conceptual entity established by the documentation. The CGNS software is a physical product supplied to enable writing and reading data according to this standard. All CGNS software is completely free and open to anyone. By using the supplied software, it is relatively easy for users to adhere to most of the standard described in detail in this document.

The CGNS project originated during 1994 through a series of meetings that addressed improved transfer of NASA technology to industry. A principal impediment in this process was the disparity in I/O formats employed by various flow codes, grid generators, and other utilities, and CGNS was conceived as a means to promote "plug-and-play" CFD. An agreement was reached to develop CGNS at Boeing external link, under NASA Contract NAS1-20267, with active participation by a team of CFD researchers from NASA's Langley external link, Lewis (now Glenn) external link, and Ames external link Research Centers, McDonnell Douglas Corporation (now part of Boeing), and Boeing Commercial Airplane Group external link. This team, which was joined by ICEM CFD Engineering Corporation external link of Berkeley, California in 1997, undertook the core of the development. However, in the spirit of creating a completely open and broadly accepted standard, all interested parties were encouraged to participate; the US Air Force external link and Arnold Engineering Development Center external link were notably present. From the beginning, the purpose was to develop a system that could be distributed freely, including all documentation, software and source code. This goal has now been fully realized; further, control of CGNS has been completely transferred to a public forum known as the CGNS Steering Committee.

The principal target is the data normally associated with compressible viscous flow (i.e., the Navier-Stokes equations), but the standard is also applicable to subclasses such as Euler and potential flows. The initial release addressed multi-zone grids, flow fields, boundary conditions, and zone-to-zone connection information, as well as a number of auxiliary items, such as non-dimensionalization, reference states, and equation set specifications. Extensions incorporated since then include unstructured mesh, connections to geometry definition, time-dependent flow, and support for multiple species and chemistry.

It is worth noting that extensibility is a fundamental design characteristic of the system, which in principal could be used for other disciplines of computational field physics, such as acoustics or electromagnetics, given the willingness of the cognizant scientific community to define the conventions.

The standard format, or paper convention, part of CGNS consists of two fundamental pieces. The first, known as the Standard Interface Data Structures (SIDS), describes in detail the intellectual content of the information to be stored. It defines, for example, the precise meaning of a "boundary condition". The second, known as the SIDS File Mapping, defines the exact location in a CGNS file where the data is to be stored.

The implementation, or software, part of CGNS likewise consists of two separate entities. CGNS files are read and written by a stand-alone database manager, either ADF (Advanced Data Format) or HDF (Hierarchical Data Format). The database manager implements a tree-like data structure, as a binary file. Since the format of this file is completely controlled by the database manager, and since ADF and HDF are both written in ANSI C (Fortran wrappers are provided), these files and the database manager itself are portable to any environment that supports ANSI C. Both ADF and HDF are available separately and constitute useful tools for the storage of large quantities of scientific data.

The underlying database manager, however, implements no knowledge of CFD or of the File Mapping. To simplify access to CGNS files, a second layer of software known as the Mid-Level Library is provided. This layer is in effect an API, or Application Programming Interface for CFD. The API incorporates knowledge of the CFD data structures, their meaning and their location in the file, enabling applications such as flow codes and grid generators to access the data in familiar terms. The API is therefore the piece of the CGNS system most visible to applications developers. Like the ADF and HDF database managers, the Mid-Level Library is written in ANSI C; all public API routines have Fortran counterparts.

Outline of Document

This document includes the following sections:

2 Design Philosophy of Standard Interface Data Structures
Presents the major design philosophies used to develop the CGNS database and the encoding of this database into the SIDS; this section also provides an overview of the database hierarchy.

3 Conventions
Describes the C-like nomenclature conventions used to define the SIDS. This section also gives the conventions for structured grid indexing and unstructured element numbering, and the nomenclature for multizone interfaces.

4 Building-Block Structure Definitions
Defines low-level building-block structures; these structures are used to define all higher-level structures.

5 Data-Array Structure Definitions
Presents structures for defining data arrays, including dimensional-units and nondimensional information.

6 Hierarchical Structures
Defines the top levels of the CGNS hierarchy.

7 Grid Coordinates, Elements, and Flow Solution
Defines the grid-coordinate, elements, and flow-solution structures.

8 Multizone Interface Connectivity
Defines the multizone interface connectivity structures.

9 Boundary Conditions
Defines boundary-condition structures.

10 Governing Flow Equations
Defines structures for describing governing flow equations.

11 Time-Dependent Flow
Defines structures related to time-dependent flow.

12 Miscellaneous Data Structures
Defines miscellaneous structures.

Appendix A Conventions for Data-Name Identifiers
Provides naming conventions for data contained within the CGNS database.

Appendix B Structured Two-Zone Flat Plate Example
Contains a complete SIDS description of a structured-grid two-zone test case.