H5hut: Internal File Layout

HDF5 is extremely flexible in the sense that it allows the user to define a higher level data model to describe domain-specific data relationships. This flexibility however makes it necessary to develop an agreement on the logical layout of the data.

An H5hut file consists of a series of "time steps," which are HDF5 groups that are added sequentially to the file root. Attributes can be attached to the file or to an individual time step. Each time step can hold multiple datasets of either 32- or 64-bit integer or floating point values. These datasets can be written as 1D particle or 3D field data using the H5Part or H5Block modules, respectively.

The H5Fed module of H5hut provides a data model for adaptively refined tetrahedral and triangle meshes. Key fea- tures of H5Fed are tags, i.e. data associated with entities, and access to all up- and downward adjacencies. No intrinsic limits exist on the number of vertices, elements and level of refinements and multiple meshes can be stored in the same H5hut file. H5Fed is aggressively optimized for minimal memory and disk usage. Information that can be computed efficently from other data is neither stored on disk nor kept in memory. Currently, H5Fed only supports serial access, but a parallel version is in development.