Basalt

Columnar basalt formations at Cape Stolbchaty, Kunashir Island, after sunset

Columnar basalt prisms are formed as lava cools rapidly and develops polygonal fractures. Photo by Ekaterina Vasyagina, licensed under CC BY-SA 4.0.

CI PyPI Version

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

Tetrahedral surface mesh of the Wendelstein 7-X stellarator generated by Basalt

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.

Getting Started

Example

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")

Try the tutorial

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.

Presentations

Citing

If you use Basalt in your research, please cite it. Citation metadata is available in the CITATION.cff file, and GitHub can generate APA or BibTeX entries from the “Cite this repository” button on the repository page.

Acknowledgements

Basalt is originally a project of Thea Energy, who are building the world’s first planar coil stellarator.

https://github.com/user-attachments/assets/37b9ba1c-b22c-4837-b226-a6212854127e