CGNS logo

CFD General Notation System
Switch to HDF5


CGNS site pages
What is CGNS?
Getting Started
Latest News
Switch to HDF5 
Steering Committee
Discussion Group
Contributed Utilities
Example CGNS Files
Proposed Extensions

Documentation pages
Documentation Home
Papers and Slides
Meeting Minutes
User's Guide
SIDS File Mapping
Mid-Level Library
CGIO User's Guide

The CGNS implementation of SIDS, so-called MLL, was originally built using a file format called ADF (Advanced Data Format).  This format was based on a common file format system previously in use at McDonnell Douglas.  The ADF has worked extremely well, requiring little repair, upgrade, or maintenance over the last decade.

However, ADF does not have parallel I/O or data compression capabilities, and does not have the support and tools that the storage format HDF5 offers.  HDF5, supported by The HDF Group, has rapidly grown to become a world-wide format standard for storing scientific data.  HDF5 has parallel capability as well as a broader support base than ADF.  (The HDF Group is a spin-off from NCSA, as described on the HDF Group website.)

Therefore, the CGNS Steering Committee has made the decision to adopt HDF5 as the default (official) data storage mechanism.  However, because it is possible to easily support both ADF and HDF5 formats simultaneously (giving the user the capability to choose between them), we will continue to support both indefinitely.

If the user links to HDF5 (version 1.8 or later) when compiling CGNS Version 3.1 or later, then by default the software will write HDF5 files (although the user can force the writing of ADF files instead if desired). The software can read either format without the user having to do anything.

To summarize, the following is our goal: The CGNS Steering Committee considers HDF5 to be its official, recommended storage format.  However, ADF will continue to be available for use, with the CGNS mid-level library capable of (1) using either format and (2) translating back and forth between the two.

NOTE: In the initial implementation of HDF5 in CGNS (CGNS Version 2.5), the index ordering for HDF5 was done incorrectly. CGNS uses the Fortran-convention for index ordering (1st index varies fastest), whereas the de-facto HDF5 standard is the C-indexing convention. As a result of this implementation error, partial reads and writes only worked when ADF was being used as the underlying database manager. They did not work correctly with HDF5. Furthermore, HDF5 multi-index arrays created with CGNS would not be read correctly by non-CGNS software. Other than this, users would not have noticed any problems with the HDF5 implementation because the CGNS software was internally consistent. Beginning with CGNS Version 2.5.4 software, this bug has been corrected. Also, Version 2.5.4 and later software can read old CGNS HDF5 files, and automatically detect and correct the index inversion (transparent to the user).

NOTE: if building CGNS with an HDF5 version earlier than 1.8, then links will not work when using HDF5 file type.