Skip to content

Thea-Energy/basalt

Repository files navigation

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.

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

About

Nuclear meshing library for NX and Parasolid based on the Simmetrix mesh suite

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors