Format¶
Stellarmesh consumes Gmsh .msh v4.1 ASCII files annotated with
physical groups using a URL-style key=value encoding.
Physical-group encoding¶
Per-entity metadata is stored as the name of a Gmsh physical group covering exactly one Gmsh entity. The name encodes a URL-style query string of key/value pairs, parsed by stellarmesh as follows.
Volume groups¶
tag=<integer>&material=<string>
tag— the volume’s Gmsh tag (matches the discrete entity tag in the same file).material— a slug identifying the volume’s material region. Slugs are bounded to 28 characters (a hard MOAB limit downstream in the DAGMC pipeline).
Every volume entity in the file must carry exactly one such physical group.
Surface groups¶
tag=<integer>&forward_volume=<integer>&reverse_volume=<integer>
tag— the surface’s Gmsh tag.forward_volume— the volume tag on the surface’s outward-normal side.reverse_volume— the volume tag on the other side. Use0for exterior surfaces (boundary of the model with vacuum).
Edges and vertices¶
Discrete entities only; no physical groups. Stellarmesh ignores edge and vertex annotations if present.
Consumer behaviour¶
When stellarmesh reads a conforming .msh file:
Each volume’s
materialslug becomes a DAGMCmat:<slug>group in the output.h5mfile.Surface
forward_volume/reverse_volumepopulate DAGMC’s surface-sense relationships.Downstream tooling (e.g. OpenMC) maps the
mat:<slug>groups toopenmc.Materialinstances. Stellarmesh does not perform that mapping itself.