MOAB/h5m

The layout of the HDF5 file is roughly:

  tstt/
   |
   +----elemtypes
   |
   +----nodes/
   |       |
   |       +---coordinates
   |       |
   |       +---tags/
   |
   +----elements/
   |       |
   |       +---"group"/
   |       |      |
   |       |      +---connectivity
   |       |      |
   |       |      +---tags/
   |       |
   |       +---"group"/
   |       |      |
   |       |      +---connectivity
   |       |      |
   |       |      +---tags/
  ...     ...
   |
   +----sets/
   |       |
   |       +----list
   |       |
   |       +----contents
   |       |
   |       +----parents
   |       |
   |       +----children
   |
   +----tags/
           |
           +---"name"/
           |      |
           |      +----type
           |      |
           |      +----id_list
           |      |
           |      +----values
           |
           +---"name"/
           |      |
           |      +----type
           |      |
           |      +----id_list
           |      |
           |      +----values
          ...

Every entity in the file is assigned a unique ID. That ID is used to reference entities for connectivity, set contents, handle-type tags, etc. For each principal data set for a given group of entities (e.g. node coordinates, element connectivity, set list) the ID of the first entity in that group is stored as an attribute called "start_id" on the data set. Entities within a group are assigned IDs sequentially beginning with that first ID.

elemtype is a list of string element type names. MOAB currently uses:

"Edge" "Tri" "Quad" "Polygon" "Tet" "Pyramid" "Prism" "Knife" "Hex" "Polyhedron" "Septahedron"

Each element connectivity data set has an attribute named "element_type" that contains one of the above enumeration values.