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§
- Abundance
Entry - Natural isotopic abundance entry.
- Abundances
Db - Natural isotopic abundance database.
- Coincidence
Entry - A single coincidence pair — two emissions observed in one parent decay.
- Coincidence
Filter - Filter for
CoincidencesDb::pairs_filtered. - Coincidences
Db - Coincidence database — γ-γ + mixed-emission pairs per (Z, A).
- Cross
Section Db - Cross-section database for a single target element from one library file.
- DataDir
- Resolved data directory with auto-download support.
- DecayDb
- Radioactive decay database.
- Decay
Entry - A single radioactive decay branch.
- Dose
Constant - Dose rate constant for a nuclide, with source attribution.
- DoseDb
- Dose rate constant database (µSv·m²·MBq⁻¹·h⁻¹).
- Electron
Db - EEDL electron interaction database.
- Emission
- One side of a coincidence pair — a single emission line.
- Emission
Entry - A single radiation emission line (γ, X-ray, or Auger).
- Gamma
Candidate - One match returned by
RadiationDb::identify_gamma. - Photon
Db - Photon interaction database loaded from EPDL97 Parquet files.
- Radiation
Db - 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 viaDecayDb::modesand callemissions(daughter_z, daughter_a, state)for each. - Relaxation
Db - EADL atomic relaxation database.
- Stopping
Db - Mass stopping power database for NIST tabulated sources (PSTAR, ASTAR, ESTAR, dSTAR, tSTAR) and CatIMA heavy-ion calculations.
- Subshell
PeDb - 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§
- Electron
Process - Electron interaction process types.
- Error
- Errors from loading or querying nuclear data.
- Process
- Photon interaction process types.
- Transition
Type - Type of atomic relaxation transition.