Skip to main content

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

Project description

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.

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.

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

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

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

basalt_mesh-0.1.tar.gz (304.2 kB view details)

Uploaded Source

File details

Details for the file basalt_mesh-0.1.tar.gz.

File metadata

  • Download URL: basalt_mesh-0.1.tar.gz
  • Upload date:
  • Size: 304.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for basalt_mesh-0.1.tar.gz
Algorithm Hash digest
SHA256 ea37f6f4dfbaf07da461fef9cddb9dff77ce473a781f230595b3441b133f3e19
MD5 95b80f394038029885ad558423316543
BLAKE2b-256 8580feded93be5735c2cb5ad51f4a08997df4d63c2939f5f5d4fc9cd4ba31bd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for basalt_mesh-0.1.tar.gz:

Publisher: release.yml on Thea-Energy/basalt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page