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)

(Purpose and Scope) (General Description) (Elements and Documentation) (Applications Software) (Acquiring CGNS) (History and Current Status)

History and Current Status

Initial Development

The initial development of CGNS took place from March 1995 through May 1998, when Version 1.0 of the CGNS software was released. The project originated through a series of meetings in 1994-1995 between NASA, Boeing, and McDonnell Douglas, who were then working under the Integrated Wing Design element of NASA's Advanced Subsonic Technology Program. The work being planned involved extensive use of CFD, and the possibility of collaborative analyses by many organizations. It was thus necessary to establish a common data format suitable to meet the needs of production CFD tools in the mid- to late-1990s. This format would be used to enable interchange of data among different CFD-related tools and different computing platforms, and to provide a mechanism for archive and retrieval of CFD data

At that time, the de facto standard for CFD data was the file format used by Plot3D, a flow visualization program developed at NASA Ames. However, the Plot3D format was developed to expedite post-processing, and was never intended as a general-purpose standard for the storage and exchange of CFD data. By the early 1990s, as CFD became more sophisticated, the limitations of the Plot3D format as a general-purpose standard had become apparent. It had no provisions for storing data associated with modern CFD technology, such as unstructured grids, turbulence models based on solutions of partial differential equations, and flows with multiple chemical species.

Individual organizations were overcoming these limitations by defining extensions to the Plot3D format to meet their needs. These extensions were not coordinated among different organizations, and therefore data stored in these extended formats generally could not be utilized outside the originating organization. Further, the Plot3D format was not self-documenting, and it was necessary to rely on file-naming conventions or external notes to maintain awareness of the flow conditions and analyzed geometry of each PLOT3D data file.

To overcome these limitations, several database options were considered by the NASA / Boeing / McDonnell Douglas team from December 1994 to March 1995. In March 1995, the decision was made to build a new data standard called CGNS (Complex Geometry Navier Stokes). This standard was a "clean sheet" development, but it was heavily influenced by the McDonnell Douglas Common File Format (CFF) external link, which had been established and deployed in 1989 and heavily revised in 1992.

Agreement was reached to develop CGNS at Boeing, under NASA Contract NAS1-20267, with active participation by a team of CFD researchers from

The original development work itself occurred from 1995-1998, and consisted of essentially four activities:

Development of ADF

As noted earlier, the decision to develop CGNS was made after an examination of several existing formats. Because of its hierarchical structure, the CFF (Common File Format) that was then in use at McDonnell Douglas was judged the most compatible with the SIDS. However, CFF had known limitations, and it was decided to adopt the CFF structure but recast it in a more general form. This gave the developers control over the software and facilitated the development of a robust, portable, reliable, and flexible database manager, which could be distributed freely within the system.

These low-level routines were developed during 1995, and make up the ADF (Advanced Data Format) Core. ADF was written and extensively tested at Boeing by a small subteam familiar with standard software development practices, and it may now be considered a stable product.

Identification and layout of the CFD data

Another task, undertaken in parallel with the development of ADF, was to identify the data associated with CFD and establish a means of encoding it within the ADF format. This task was the primary concern of the national team, with Boeing proposing the standards and the remainder of the team serving to critique, test, and improve them. This began with the development of the SIDS and its language. The hierarchical nature of the SIDS was used to suggest the SIDS-to-ADF File Mapping conventions, which were developed slightly after the SIDS but along the same track.

Development of an API

At a review in June 1997, the CGNS team (NASA, Boeing, and McDonnell Douglas) determined that additional support would be required to produce an adequate Mid-Level Library. Subcontracts were issued to the ICEM CFD Engineering Company, in Berkeley, CA, following this decision. ICEM CFD in effect became the lead organization for the development of the Mid-Level Library.

Also at this time, the acronym "CGNS" was re-defined to mean "CFD Generalized Notation System", which was more in keeping with the evolved goals of this project.

Version 1.0 of the Mid-Level Library, which met the original goal of supporting structured multi-block analysis codes, was released in May 1998. This set of higher-level routines enables a user to implement the CFD standards defined by the SIDS, without specific knowledge of the File Mapping or the ADF Core. This activity was crucial to the acceptance and implementation of CGNS among the CFD community.

NASA and the informal CGNS committee determined that there was no need for export authority so the CGNS standard, the ADF Core and the Mid-Level Library, and all supporting documentation could be distributed worldwide as freeware. Appropriate legal reviews and approvals were obtained at both NASA and Boeing to validate this decision.

Demonstration of system capability

Prototypes. To test the CGNS data recording and retrieval mechanisms and to gain experience with the installation of the software into common applications codes, the developers modified two CFD solvers (namely, NPARC and TLNS3D) to operate in the CGNS environment. In addition, NASA Langley Research Center modified CFL3D similarly. These modifications were made early in the project and predate the Mid-Level Library and some later portions of the SIDS.

Separate data cases were prepared for each of the prototypes. Each prototype proved capable of starting, exiting, and restarting its data case as expected. In addition, in all three cases, transfer of the CGNS data between workstation (SGI) and mainframe (CRAY) platforms was successfully demonstrated.

Dissimilarity of the content of the data required by NPARC and the other two codes (i.e., nodal vs. cell-centered data) prevented restarting NPARC from TLNS3D/CFL3D data and vice versa. However, this type of restart was demonstrated between TLNS3D and CFL3D.

These prototypes were limited in certain ways and, therefore, were not suitable as a final implementation of their respective capabilities in CGNS. The principal limitations are:

The general lesson learned from the construction of the prototypes was that professional programmers had no conceptual difficulty in implementing CGNS at the ADF Core level. But the resulting code was cumbersome, and the development of the Mid-Level Library was needed to facilitate dissemination of CGNS among those disinclined to work with the ADF Core.

System Demonstrator. As the CGNS effort progressed, an additional activity was undertaken to demonstrate the capability of the mature system. Known as the "system demonstrator", this tested the ability of CGNS to transfer data seamlessly between applications that had never operated together before. The system demonstrator used most of that portion of the currently existing SIDS that has been included in the Mid-Level Library.

The geometry chosen for the test was a high-lift configuration known as the trapezoidal wing. This is a multielement airfoil with a full-span slat and flap, and a generic fuselage.

Three separate CGNS-compatible application codes were involved in the system demonstrator.

   GMAN external link A pre-processor and grid generation tool developed by Boeing St. Louis
OVERFLOW external link   A CFD flow solver developed by NASA Ames
Visual3 external link A flow visualization tool from ICEM CFD, originally developed at MIT

The system demonstrator consisted of the following tasks:

  1. The grid was generated using NASA Ames grid tools and written as a Plot3D file.

  2. The grid file was sent to Boeing St. Louis, where it was processed by a locally-modified version of GMAN. GMAN calculated the grid connectivity information, and wrote the grid and connectivity data into a CGNS database. Boundary conditions were also added to the CGNS database at this time.

  3. The CGNS file was returned to NASA Ames, where it was read by the newly-modified OVERFLOW code. (Some iteration was necessary here, because the definition of overset holes used by GMAN differs from that normally expected by OVERFLOW. The CGNS file was intact, and served, as intended, to highlight the discrepancy.) OVERFLOW computed the flow field, writing the results into the CGNS database.

  4. The CGNS file was next sent to ICEM CFD. There, the CGNS database was read and displayed using Visual3.

The system demonstrator involved significant cross-platform transfer among various workstation and mainframe computing facilities. The results indicated that universal data exchange was well supported by CGNS.

Subsequent Development

Software

Since the release of Version 1.0 of the CGNS software in May 1998, several improvements and extensions have been made to the SIDS, the File Mapping, and the Mid-Level Library.

A more detailed list of revisions external link to the CGNS software is available at the CGNS web site.

ICEM CFD external link served as the focal point for CGNS software development through the release of Version 2.0, plus the changes in Version 2.5, using internal company resources. New features in Version 2.1 and 2.4 were added by Intelligent Light external link, with funding from NASA Langley. Eagle Aeronautics external link, with additional participation by ICEM CFD, added the new features in Version 2.2, again with funding from NASA Langley. Support for HDF as the underlying database in Version 2.4 was added by personnel from ONERA external link, ICEM CFD, and the U. S. Air Force Arnold Engineering Development Center external link.

Management and Support

In 1998 NASA announced that the Advanced Subsonic Technology program, which had funded the initial CGNS development, would end in September 1999. Several organizations interested in the continued development of CGNS met in May 1999 to discuss options. The decision was made to create the CGNS Steering Committee, a voluntary public forum made up of international representatives from government and private industry.

The Steering Committee is responsible for coordinating the further development and dissemination of the CGNS standard and its supporting software and documentation. In Jan 2000, the CGNS Steering Committee became a Sub-committee of the AIAA CFD Committee on Standards external link. Additional details about the mission and responsibilities of the Steering Committee, and its organization, are in the CGNS Steering Committee Charter.

The basic CGNS documentation has of course been updated to reflect the software changes described above. In addition, all the documentation has been converted to LaTeX (used to create PDF versions for printing), and to HTML (for interactive use). A new document, A User's Guide to CGNS, was made available in October 2001, and is very useful for new and prospective users of the Mid-Level Library.

To encourage communication between CGNS users, a mailing list called CGNStalk was created in Oct 2000. In May 2021, a CGNS discussions forum was created on GitHub, and the CGNStalk mailing list was decommissioned.

Current Status

Since the initial release of the Mid-Level Library in May 1998, interest in CGNS has continued to grow throughout the global CFD community. The system is being used by engineers and scientists in academia, industry, and government. By January 2002, 591 users from more than 25 countries had formally registered at the CGNS web site. As of September 2007, the CGNStalk mailing list had 224 participants from 20 different countries and at least 79 different organizations.

Software

The current "production" release of CGNS is Version 3.1, released in January 2011.

Several extensions to CGNS have been formally proposed. Documentation supporting these extensions, and information on their current status, is available via the "Proposals for Extensions external link" link at the CGNS web site external link.

Standards

Between 1999 and 2002, an effort was spearheaded by Boeing to establish an ISO-STEP standard for the representation, storage, and exchange of digital data in fluid dynamics based on the CGNS standard. Unfortunately, the effort had to be curtailed because of budget problems. It was subsequently decided that an existing ISO standard on finite element solid mechanics would be rewritten and submitted to include CGNS as well as an integrated engineering analysis framework.

As part of its role as a sub-committee of the AIAA CFD Committee on Standards, the CGNS Steering Committee is also involved in the development of the AIAA Recommended Practice for the storage of CFD data. The Recommended Practice consists of the CGNS Standard Interface Data Structures (SIDS) document, reformatted to conform to AIAA's requirements. The current AIAA Recommended Practice (corresponding to CGNS Version 2.4) is available at the AIAA Online Store external link, and as a PDF file (1.01M, 200 pages) at the CGNS Documentation web site.

Noteworthy Contributions

The entire CGNS team deserves credit for its accomplishments. The project might easily be cited as a prime example of effective voluntary cooperation between government and industry. Every member has contributed ideas, enthusiasm, and improvements, and enabled us to represent a cross-section of knowledge and practice from the CFD community.

It would not be practical to outline each member's contributions to a project of this complexity. Nevertheless, it is appropriate to note the contributions of a few individuals who dedicated special effort during the crucial stages leading to the initial release of CGNS in May 1998.

And, a particularly special mention: