Columnar basalt prisms are formed as lava cools rapidly and develops polygonal fractures. Photo by Ekaterina Vasyagina, licensed under CC BY-SA 4.0.
Basalt is a Python meshing library for nuclear workflows. It wraps the
commercial Simmetrix SimModSuite
library through C++ bindings, ingests Parasolid CAD assemblies,
performs non-manifold imprinting, generates surface and volume
meshes, and exports them as Gmsh .msh files annotated for use
with Stellarmesh
and DAGMC.
Note
Basalt requires a valid Simmetrix SimModSuite license and the corresponding
module distribution (gmcore, mscore, pskrnl,
simlicense). The library cannot be built or run without
these. See Installation for details.
Features
- Parasolid (
.x_t) assembly import via Simmetrix - NX user-attribute ingestion through a JSON sidecar
- Non-manifold imprint and merge of conformal geometry
- Surface and volume meshing with curvature and proximity refinement
- Gmsh export with metadata for downstream DAGMC conversion
Basalt-generated tetrahedral mesh of the public Wendelstein 7-X stellarator fixture (plasma vessel and planar coils). See the W7-X neutronics tutorial for the full pipeline.
import basalt as bslt
model = bslt.Model.from_parasolid_file("geometry.x_t")
nm_model = model.make_non_manifold_model()
mesh_case = bslt.MeshCase(nm_model)
mesh_case.set_size(0.1)
surface_mesh = bslt.SurfaceMesh.from_model(nm_model, mesh_case)
volume_mesh = bslt.VolumeMesh.from_surface_mesh(surface_mesh)
volume_mesh.write_msh("output.msh")For an end-to-end neutronics workflow against the public W7-X stellarator fixture — from Parasolid CAD through Basalt meshing, stellarmesh DAGMC conversion, and an OpenMC fixed-source DT-neutron calculation with four tallies and a 3D PyVista flux render — see the W7-X neutronics tutorial.
Basalt is originally a project of Thea Energy, who are building the world's first planar coil stellarator.
