DAGMC .h5m File Specification

The .h5m file is a generic file format supported by MOAB. These files may contain meshes intended for any number of purposes with various element types. Some basics regarding MOAB constructs is required to navigate following specification, namely EntitySet's' and Tag's. See the Glossary for more information on these items.

Geometric EntitySets¶

For an .h5m file to be used with DAGMC, EntitySet's that are "tagged" with specific information must be present. Only EntitySet's that are tagged with the required information will be "seen" by the DAGMC interface. These tags are used to identify the geometric entities (volumes, surfaces, curves, and vertices) as well as their relationships to each other. Tags on geometric EntitySet's are also used to establish topological relationships. For example, the GEOM_SENSE_2 tag (described in the geom_tags table) is used to relate surfaces to the volumes on either side of the surface.The GEOM_DIM tag is used to indicate the dimensionality of the geometric EntitySet. See the geom_dim_table for valid entries for this tag.

Metdata EntitySets

To apply a DAGMC geometry in transport, certain properties need to be associated with the geometry. Examples of these properties include:

  • Material assignments

  • Boundary conditions

  • Temperatures

  • Tallies

Please refer to code-specific-steps for any properties that may be specific to the transport code you intened to use.

Tag Name

Type

True Type

Size

Purpose

Tagged On

OBB_ROOT

EntityHandle

uint64_t

1

This tag resides on geometric EntitySet's. Its value is the handle of the associated OBB tree root EntitySet.

EntitySet

OBB_GSET

EntityHandle

uint64_t

1

This tag resides on OBB tree root EntitySet's. Its value is the handle of the associated geometric EntitySet.

EntitySet

OBB

MB_TYPE_DOUBLE

double

9

This tag resides on EntitySets in an OBB tree. The value of this tag is nine doubles representing the oriented bounding box for this EntitySet-node in the tree.

EntitySet

Topology¶

Every mesh-based geometry contains entity sets that are either volumes, surfaces, or curves. There are two types of relationships that can relate entities to other entities. The first is called a parent-child relationship. Volumes are parents to surfaces that make up that volume; surfaces are parents to curves; and curves are parents to the geometric vertices.

The second type of relationship is the set relationship, which is different from a parent-child relationship. Each surface and curve is an entity set. The surface entity sets contain the triangles and their vertices for that surface. The curve entity sets contain edges and their vertices. The volume entity sets, however, are empty. While a volume is parent to surfaces (the parent-child relationship), the volume does not contain any mesh entities.

Sense tags¶

Each surface is tagged with the two volume handles of the adjacent volumes. The first of the two surfaces is designated as the forward direction and the second is designated with the reverse direction. It is important to note that these surfaces senses may not be consistent with how an MC code determines the surface sense. The surfaces are also expected to have a parent-child relationship to each of those volumes.