YANI
Yet Another Nuclide Inventory. A material, an irradiation schedule and a neutron spectrum in; inventories, activities, decay heat, contact dose and decay photon spectra out.
Try it online 🌐 | Documentation 📝 | PyPI 🐍
The browser version needs no install and no account. It is the same Rust solver compiled to WebAssembly, against the same continuous-energy data, so it answers what the wheel answers rather than a reduced version of it. The solve runs on your machine; nothing is uploaded.
pip install yani
import yani
# flexible use of different libraries
yani.cross_section_data = "tendl-2025"
yani.transmutation_reactions = "tendl-2025"
yani.transmutation_branch_ratios = "tendl-2025"
yani.transmutation_decay_data = "endf-b8.1"
yani.transmutation_fission_yields = "endf-b8.1"
# make your own or use inbuilt material definitions
steel = yani.materials.pnnl.material(key="Steel, Stainless 316", volume=1000.0)
# define the neutron spectrum
spectrum = yani.NeutronSource(
energy=yani.sources.Histogram(
boundaries=[1e-5, 1e5, 1e6, 1.5e7], probabilities=[1e12, 1e13, 1e14]
)
)
# define the irradiation and cooling schedule
schedule = yani.PulseSchedule(steps=[
yani.Pulse(rate=1.11e14, duration=(1, "a"), source=spectrum),
yani.Cooldown(duration=(1, "d")),
])
# perform the simulation
results = steel.transmute(schedule=schedule)
# access the last material in the time steps (id 0 when the material has none)
final = results.step_materials(material_id=steel.id or 0)[-1]
# convenient access to useful properties of the material
print(final.activity(), "Bq")
print(final.decay_heat(), "W")
print(final.contact_dose(), "Gy/h")
What it solves
The nuclide inventory under irradiation is the Bateman equations with reaction
terms, dN/dt = A N, solved as a matrix exponential N(t) = exp(A t) N(0) by
CRAM at order 48. The solver is Rust; the wheel needs no compiler and no
external toolchain.
Metadata
Release files for yani 0.17.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| yani-0.17.0.tar.gz | 3.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| yani-0.17.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.1 kB
Release files / yani-0.17.0.tar.gz
| Download URL | yani-0.17.0.tar.gz |
|---|---|
| Size | 3.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2b8e65356b6c1fcad71b7490afb47c64460c776c5a4d5458f03f92bf75405dd7
|
|
BLAKE2b-256 checksum How to use checksums |
ddb5d8397a33d9a5a4e4b2d32608e85475f61dfab42fba14d74ad11c22c9227f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / yani-0.17.0-py3-none-any.whl
| Download URL | yani-0.17.0-py3-none-any.whl |
|---|---|
| Size | 2.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6e00dff0ef2e00090d8b0d75abe8022ca92019dd0d47d2b55732a60d0a401c81
|
|
BLAKE2b-256 checksum How to use checksums |
adc4bba39cda9ece764793eb3937d82d31efc54c4b0e7f9a6d6519538f265994
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency log