Nucleide

Crate Overview

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

Crates

nucleide-linalg

crates/linalg · source

Isolation facade over the numeric backend (faer) so the rest of the workspace never depends on it directly

Depends on: -

Python: nucleide.uq

nucleide-nuclei

crates/nuclei · source

Nuclide identification, naming conventions, and reaction names

Depends on: -

Python: nucleide.nuclei

nucleide-material

crates/material · source

Nuclear material compositions: mixing, conversions, materials XML export

Depends on: nucleide-nuclei

Python: -

nucleide-mcnp-io

crates/mcnp-io · source

MCNP-family file I/O: xsdir, meshtal, SSW, PTRAC, ENDL readers/writers plus shared Fortran-record framing and SSW combining

Depends on: nucleide-nuclei

Python: nucleide.mcnp

nucleide-csg-xlate

crates/csg-xlate · source

MCNP CSG translation to OpenMC geometry.xml, Serpent, PHITS, and GDML (Geant4) outputs with per-cell/per-surface drift reports

Depends on: nucleide-mcnp-io

Python: -

nucleide-mcpl-io

crates/mcpl-io · source

MCPL Monte Carlo Particle List read/write (v2/v3, single/double precision, gzip-transparent) with merge/extract/stats/repair utilities

Depends on: nucleide-mcnp-io

Python: nucleide.mcpl

nucleide-serpent-io

crates/serpent-io · source

Parsers for Serpent Monte Carlo MATLAB-style output files (_res.m, _dep.m, _det.m)

Depends on: -

Python: nucleide.serpent

nucleide-fluka-io

crates/fluka-io · source

FLUKA Monte Carlo interface: USRBIN tally reading and MATERIAL/COMPOUND card generation

Depends on: nucleide-nuclei

Python: nucleide.fluka

nucleide-alara-io

crates/alara-io · source

ALARA activation-code interop: input-deck, flux, schedule, and output glue (no solver)

Depends on: nucleide-nuclei

Python: nucleide.alara

nucleide-cccc-io

crates/cccc-io · source

CCCC binary-standard readers (ISOTXS, RTFLUX/ATFLUX, RZFLUX) and PARTISN deck writer

Depends on: nucleide-nuclei

Python: nucleide.cccc

nucleide-fispact-io

crates/fispact-io · source

FISPACT-II output parser producing ALARA-compatible response frames (no solver)

Depends on: nucleide-alara-io nucleide-nuclei

Python: nucleide.fispact

nucleide-origen-io

crates/origen-io · source

ORIGEN 2.2 TAPE readers (scoped: TAPE5 input echo, TAPE6 output, TAPE9 decay constants)

Depends on: nucleide-nuclei

Python: nucleide.origen

nucleide-enrichment

crates/enrichment · source

Multicomponent enrichment cascades and SWU analytics

Depends on: nucleide-nuclei

Python: nucleide.enrichment

nucleide-depletion

crates/depletion · source

CRAM matrix exponential (orders 16/48), depletion-chain XML parsing

Depends on: nucleide-linalg nucleide-nuclei

Python: nucleide.depletion

nucleide-kinetics

crates/kinetics · source

Prescribed-reactivity point-kinetics solver (PKE + inhour + prompt-jump)

Depends on: -

Python: nucleide.kinetics

nucleide-spectroscopy

crates/spectroscopy · source

Gamma-ray spectrum smoothing, peak counting, energy/efficiency calibration, SPE parsing, and SDEF decay-source cards

Depends on: nucleide-linalg nucleide-nuclei

Python: nucleide.spectroscopy

nucleide-unfold

crates/unfold · source

Neutron spectrum unfolding from activation-type measurements (SAND-II, STAYSL-class least-squares, GRAVEL, and MAXED maximum-entropy adjustment)

Depends on: nucleide-linalg

Python: nucleide.unfold

nucleide-tritium

crates/tritium · source

1D tritium diffusion-trapping kernel (Fick + McNabb-Foster, Sieverts surfaces, permeation gates)

Depends on: nucleide-linalg

Python: nucleide.tritium

nucleide-plasma-source

crates/plasma-source · source

Tokamak fusion neutron sources (ring/point): sampled particle vectors and SDEF/Serpent source cards

Depends on: nucleide-nuclei nucleide-mcnp-io

Python: nucleide.plasma_source

nucleide-damage

crates/damage · source

Damage and gas-production metrics (NRT-dpa, arc-dpa, He/H appm, He/dpa) by spectral folding of caller flux with caller damage/gas response functions

Depends on: nucleide-linalg nucleide-nuclei

Python: nucleide.damage

nucleide-blanket

crates/blanket · source

TBR and blanket power bookkeeping over caller transport tallies (port-penalty haircuts, energy multiplication, tritium burn and fuel-cycle margin)

Depends on: -

Python: nucleide.blanket

nucleide-equilib-io

crates/equilib-io · source

Equilibrium data readers (classic-netCDF VMEC wout files plus VMEC INDATA namelist text); reads data, never solves equilibria

Depends on: -

Python: nucleide.equilib

nucleide-vr-tools

crates/vr-tools · source

MAGIC weight-window generation, mesh source sampling with alias tables

Depends on: nucleide-mcnp-io

Python: nucleide.vr

nucleide-r2s

crates/r2s · source

Rigorous two-step (R2S) shutdown-dose-rate orchestration over mcnp-io, alara-io, and vr-tools

Depends on: nucleide-alara-io nucleide-depletion nucleide-material nucleide-mcnp-io nucleide-nuclei nucleide-vr-tools

Python: nucleide.r2s

nucleide-emit

crates/emit · source

Single-material emission to MCNP/Serpent/FLUKA/ALARA/PARTISN cards plus mass-drift reports

Depends on: nucleide-nuclei nucleide-material nucleide-mcnp-io nucleide-serpent-io nucleide-fluka-io nucleide-alara-io nucleide-cccc-io

Python: nucleide.emit

nucleide-bindings

bindings/python · source

PyO3 bindings exposing Nucleide to Python as nucleide._internal

Depends on: nucleide-nuclei nucleide-material nucleide-mcnp-io nucleide-mcpl-io nucleide-depletion nucleide-kinetics nucleide-spectroscopy nucleide-serpent-io nucleide-fluka-io nucleide-vr-tools nucleide-enrichment nucleide-alara-io nucleide-cccc-io nucleide-fispact-io nucleide-origen-io nucleide-r2s nucleide-emit nucleide-tritium nucleide-csg-xlate nucleide-linalg nucleide-plasma-source nucleide-damage nucleide-unfold nucleide-equilib-io nucleide-blanket

Python: -

nucleide-wasm

bindings/wasm · source

wasm-bindgen facade exposing Nucleide core capabilities to the browser

Depends on: nucleide-nuclei nucleide-material nucleide-emit nucleide-enrichment nucleide-depletion nucleide-mcnp-io nucleide-mcpl-io nucleide-kinetics nucleide-spectroscopy nucleide-alara-io nucleide-cccc-io nucleide-fispact-io nucleide-serpent-io nucleide-fluka-io nucleide-origen-io nucleide-vr-tools nucleide-tritium nucleide-linalg nucleide-damage nucleide-plasma-source nucleide-unfold nucleide-blanket nucleide-equilib-io

Python: -

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.