Reading HDF5

Revision as of 18:05, 26 January 2017 by MarkMiller (talk | contribs) (added chombo link)

VisIt can read data from several codes that write their data files to the HDF5 data file format. HDF5 is mainly a smart array storage file format from VisIt's point of view. Complex data structures such as unstructured meshes are often stored in several arrays (coordinates, connectivity, etc.) and the meaning of each array is known to the code that wrote the file. For VisIt to read that file back in, VisIt's plugins must also understand the conventions used to write the HDF5 file so when certain arrays are seen, they can be reassembled into the more complex data structure that they collectively represent. Each of VisIt's HDF5 database reader plugins understands the conventions of a different code that stored its data using HDF5.

These plugins use the HDF5 library directly to access the contents of their files:

Database reader plugin What it stores
Tetrad Unstructured mesh made of tetrahedra
SAMRAI Structured AMR mesh (rectilinear, curvilinear), scalars, materials
Pixie Curvilinear mesh, scalars. Can also read array data and create rectilinear mesh for all arrays in the HDF5 file.
FLASH AMR mesh (rectilinear), scalars
Chombo Structured AMR mesh (rectilinear, curvilinear), scalars, materials
GTC 3D points with scalars
M3D Unstructured mesh, scalars, vectors, tensors
H5Part Particle and mesh data
XDMF General HDF5 reader that uses XML file to describe how arrays are assembled into more complex data structures. This reader was released in VisIt 1.9 and it is still under development. For more information on creating XML files that help access your HDF5 data, look at the Using XDMF to read HDF5.
Vizschema (Vs) Uniform, Rectilinear, Structured, and Unstructured meshes. Fields & Particles. Cartesian or Cylindrical coordinates. 1D/2D/3D. Example scripts for generating all types of Vizschema-compatible data are available upon request. See Vizschema website for more information.

If your HDF5 data looks like any of the above then you can look in the source code for the plugins to determine the structure of the expected HDF5 files. There is currently no sample code for producing HDF5 files that VisIt can read for most of the plugins listed above.

File formats with optional HDF5 storage layer

This section lists some file formats that use HDF5 as a storage layer for a more complex data model that is often hidden by a programming API. These file formats can and do use HDF5 but they should not really be considered HDF5 because their programming API should be used to read the contents of their files.

Database reader plugin What it stores
CGNS Structured, unstructured meshes, scalars, CFD metadata [as of version 1.8.1 it is linked against ADF librarry by default, but HDF5 backend works also]
NETCDF As of NETCDF 4, the NETCDF library stores its data to an HDF5 file. The NETCDF API should still be used to read these files.
Silo Structured, unstructured meshes, scalars, vectors, materials, multiple domains.