Skip to main content

Crate nucl_parquet

Crate nucl_parquet 

Source
Expand description

§nucl-parquet

Fast, thread-safe access to nuclear interaction data stored as Parquet files.

Designed as the physics data backbone for Monte Carlo particle transport codes. All data structures are Send + Sync — load once, share across threads via Arc.

§Data sources

  • EPDL97: Photon cross-sections (photoelectric, Compton, Rayleigh, pair production)
  • EADL: Atomic relaxation (fluorescence X-ray and Auger transition probabilities)
  • EEDL: Electron cross-sections (elastic, bremsstrahlung, ionization)
  • XCOM: Total mass attenuation coefficients (µ/ρ, µ_en/ρ)
  • Stopping: NIST PSTAR/ASTAR/ESTAR + dSTAR/tSTAR and CatIMA mass stopping power tables
  • Meta: Isotopic abundances, radioactive decay chains, and dose rate constants
  • XS: Nuclear reaction cross-sections (TENDL and other evaluated libraries)

§Usage

use nucl_parquet::PhotonDb;
use std::sync::Arc;

let db = Arc::new(PhotonDb::open("path/to/nucl-parquet/meta")?);

// Thread-safe lookups (no locks, data is immutable)
let xs = db.cross_section(29, 511.0, nucl_parquet::Process::Photoelectric);
let ff = db.form_factor(29, 0.5);  // Rayleigh form factor at q=0.5

§Quick start (with fetch feature)

// requires `fetch` feature
let data = nucl_parquet::DataDir::ensure()?;
let photon = data.photon_db()?;

Re-exports§

pub use store::Filter;
pub use store::ParquetStore;

Modules§

store
Generic, cached Parquet-to-JSON reader.

Structs§

AbundanceEntry
Natural isotopic abundance entry.
AbundancesDb
Natural isotopic abundance database.
CoincidenceEntry
A single coincidence pair — two emissions observed in one parent decay.
CoincidenceFilter
Filter for CoincidencesDb::pairs_filtered.
CoincidencesDb
Coincidence database — γ-γ + mixed-emission pairs per (Z, A).
CrossSectionDb
Cross-section database for a single target element from one library file.
DataDir
Resolved data directory with auto-download support.
DecayDb
Radioactive decay database.
DecayEntry
A single radioactive decay branch.
DoseConstant
Dose rate constant for a nuclide, with source attribution.
DoseDb
Dose rate constant database (µSv·m²·MBq⁻¹·h⁻¹).
ElectronDb
EEDL electron interaction database.
Emission
One side of a coincidence pair — a single emission line.
EmissionEntry
A single radiation emission line (γ, X-ray, or Auger).
GammaCandidate
One match returned by RadiationDb::identify_gamma.
PhotonDb
Photon interaction database loaded from EPDL97 Parquet files.
RadiationDb
Daughter-filed convention. Each emission row is filed under the nucleus that emits the γ / X-ray / Auger electron, not the parent that decayed to produce it. The 1173 / 1333 keV γ from a Co-60 calibration source live under (Z=28, A=60) (daughter Ni-60), since they are emitted by the de-exciting Ni-60 nucleus. The historical convention matches the coincidence build’s daughter-keying. To collect everything a parent source emits, walk parent → daughter via DecayDb::modes and call emissions(daughter_z, daughter_a, state) for each.
RelaxationDb
EADL atomic relaxation database.
StoppingDb
Mass stopping power database for NIST tabulated sources (PSTAR, ASTAR, ESTAR, dSTAR, tSTAR) and CatIMA heavy-ion calculations.
SubshellPeDb
Subshell photoelectric cross-section database (EPDL97).
Transition
A single atomic relaxation transition.
XcomDb
XCOM mass attenuation coefficient database.
XsEntry
A single cross-section data point.

Enums§

ElectronProcess
Electron interaction process types.
Error
Errors from loading or querying nuclear data.
Process
Photon interaction process types.
TransitionType
Type of atomic relaxation transition.

Functions§

z_to_symbol

Type Aliases§

Result
Result type for nucl-parquet operations.
XYTable
Parallel x/y f64 vectors — ubiquitous table shape for interpolation (energy, value).