Nucleide

Crate Overview

Nucleide is a Cargo workspace. Each crate owns one capability area and exposes a thin, focused API.

CratePathResponsibility
linalgcrates/linalgIsolation facade over the linear-algebra backend so numeric dependencies stay in one place
nucleicrates/nucleiCanonical nucid representation, element tables, naming dialects (MCNP/Serpent/FLUKA/NIST/CINDER/ALARA/SZA), particles, reaction names
materialcrates/materialCompositions, mixing arithmetic, unit conversions, DOE/PNNL Materials Compendium loading, materials XML export
mcnp-iocrates/mcnp-ioxsdir, meshtal, SSW/SURFSRC, PTRAC, WWINP, MCTAL readers; material extraction from input decks; mesh-to-geometry deck generation
serpent-iocrates/serpent-io_res.m, _dep.m, _det.m readers producing structured records
fluka-iocrates/fluka-ioUSRBIN tally reader, MATERIAL/COMPOUND card generation
enrichmentcrates/enrichmentMulticomponent cascade solver (numeric), SWU closed-form helpers
depletioncrates/depletionCRAM matrix exponential (orders 16/48), depletion-chain XML parsing
vr-toolscrates/vr-toolsMAGIC weight-window generation, mesh source sampling with alias tables
nucleide-bindingsbindings/pythonPyO3 extension module exposing the workspace to Python as nucleide._internal
nucleide-wasmbindings/wasmwasm-bindgen crate powering the browser-based interactive tutorials

Dependency rules

  • bindings/python may depend on workspace crates.
  • Workspace crates must never depend on bindings/python or on Python.
  • enrichment stays independent of material by design.

See Crate responsibilities for the dependency rationale and layering rules.