Nucleide

Materials

Build materials from chemical formulas, inspect fractions, mix, and export XML.

Nucleide models a material as a map from canonical nuclide identifiers to masses. From that compact representation it can derive atom fractions, weight fractions, and serializations used by transport codes.

From a chemical formula

The formula parser understands element symbols, parentheses, and hydrates. For example, H2O expands to natural hydrogen and natural oxygen using AME2020 masses and natural abundances.

Loading the live demo…

Browse the Materials Compendium

The full DOE/PNNL Materials Compendium — hundreds of named materials with isotope-level weight fractions — is fetched as JSON and parsed on this page, using the same MaterialsCompendium API available in Python. Pick a material to inspect its composition.

Loading the live demo…

Atom vs. weight fractions

For a material with stored masses mim_i:

wi=mi∑jmjai=mi/Mi∑jmj/Mjw_i = \frac{m_i}{\sum_j m_j} \qquad a_i = \frac{m_i / M_i}{\sum_j m_j / M_j}

where MiM_i is the atomic mass of nuclide ii. The demo above computes both and plots them as grouped horizontal bars.

Mixing materials

Material::mix_by_mass combines materials using relative mass weights. The fractions do not need to sum to one; they are normalized internally.

Separator, blender, and CUSUM

The demo’s scalar section runs the fuel-cycle micro-adds below: materialSeparate (mass-efficiency split into product/tails), materialBlend (fixed-ratio blend), and cusumDetect (one-sided upper Page CUSUM over a scalar series with Welford statistics).

XML export

The to_xml(name, density) method produces an OpenMC-style material XML fragment, including the canonical nuclide list, densities, and mass fractions.

Dose per gram and code-card emission

Screening-level dose factors (vendored HNF-5636 tables; dose_factor lookups and dose_per_g per pathway with the EPA default) run in the dose section at the end of the demo above: pick a pathway (air/soil/ingest/inhale) and source (EPA/DOE/GENII) to score the current formula. Compositions with nuclides outside the tables — including the -1 GENII/DOE air sentinels — report an inline error instead of a value; fully stable compositions such as H2O return 0 (no activity to convert). For external-exposure coefficients, EPA FGR 15 (nucleide.nuclei.fgr15_dose_rate) is the Python-side complement — runtime-downloaded, not vendored, and the live demos do not expose it; it never silently overrides dose_per_g. The five-dialect card emitter (emit_cards / emit_drift_table, plus the emit_armi_cards ARMI blueprint bridge) runs in the Code-card emission demo. For batch use see the Build materials and Emit code cards tutorials.

See also