Skip to main content

Hierarchical Yield and Radionuclide Rates — isotope production in stacked target assemblies

Project description

HYRR

Hierarchical Yield and Radionuclide Rates

A pure Python package for predicting radio-isotope production in stacked target assemblies, using TENDL cross-section data and NIST stopping power tables.

Web App | Documentation

Try it now — full simulation runs in the browser, no install, no data leaves your machine.

What it does

  • Stopping power via PSTAR/ASTAR table lookup (replaces Bethe-Bloch)
  • Energy-integrated production rates for any projectile (p, d, t, ³He, α)
  • Bateman equations for activity, yield, and decay chains
  • Compound materials with natural or enriched isotopic composition
  • Stacked layer geometries (windows, targets, degraders, backings)
  • Depth-resolved heat and activity profiles

Performance

HYRR is designed for interactive use — simulations are fast enough for real-time parameter sweeps:

Operation Time
Single isotope production rate ~56 µs
Full layer simulation (all isotopes) ~1.6 ms

Compared to tools like Isotopia, HYRR is significantly faster and lighter: pure NumPy/SciPy with Parquet-backed nuclear data (no heavy ORM, no database server). The browser frontend achieves similar performance with a pure TypeScript compute engine.

Installation

uv add git+https://github.com/exoma-ch/hyrr.git

Quick start

from hyrr import TargetStack, Layer, Beam

stack = TargetStack(
    beam=Beam(projectile="p", energy_MeV=30.0, current_mA=0.15),
    layers=[
        Layer(material=havar, thickness_cm=0.0025),
        Layer(material=enriched_mo100, energy_out_MeV=12.0),
        Layer(material=copper, thickness_cm=0.5),
    ],
)

result = stack.run(irradiation_time_s=86400, cooling_time_s=86400)
result.summary()

Frontend

exoma-ch.github.io/hyrr — hosted on GitHub Pages, zero backend.

The browser frontend (frontend/) is a standalone Svelte 5 + TypeScript app with a pure-TS physics engine (no Python/WASM). Nuclear data is lazy-loaded from Parquet files via hyparquet. All computation runs locally — no server, no data upload.

Development

git clone --recurse-submodules https://github.com/exoma-ch/hyrr.git
cd hyrr
uv sync --all-extras
uv run pytest

Frontend:

cd frontend
npm ci
npm run dev
npm test          # vitest
npm run check     # svelte-check (TypeScript)

Contributing

  1. Fork and create a feature branch
  2. Python: uv sync --all-extras, then uv run pytest and uv run ruff check src/
  3. Frontend: cd frontend && npm ci, then npm test and npm run check
  4. Commit format: type(scope): description
  5. Open a PR against main

Dependencies

  • numpy, scipy — numerics
  • polars — data access (Parquet backend)
  • matplotlib — plotting
  • py-mat — material definitions
  • nucl-parquet — evaluated nuclear data (TENDL, ENDF/B, JENDL, JEFF, EXFOR)

About eXoma

eXomaExotic Matter Applications — is a research group at ETH Zürich focused on novel radioisotope production methods and targetry.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hyrr-0.1.3.tar.gz (67.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hyrr-0.1.3-py3-none-any.whl (79.1 kB view details)

Uploaded Python 3

File details

Details for the file hyrr-0.1.3.tar.gz.

File metadata

  • Download URL: hyrr-0.1.3.tar.gz
  • Upload date:
  • Size: 67.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for hyrr-0.1.3.tar.gz
Algorithm Hash digest
SHA256 31b693d691726d0492848a63260d207803d74ac404fbba9331d73ab272441c93
MD5 465bc62dc8d3173c1943c297cb766342
BLAKE2b-256 bceb94a9acc4e47105f4449e327685e79174ce27d5250efde0633268e6b28a61

See more details on using hashes here.

Provenance

The following attestation bundles were made for hyrr-0.1.3.tar.gz:

Publisher: release.yml on exoma-ch/hyrr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hyrr-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: hyrr-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 79.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for hyrr-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1420d1e1098d408226d9238a1ef33a5ec59f204ed5a3547f54b3b552ce3a3f6b
MD5 fa716ec96cee0f1340f5765ab8b8e424
BLAKE2b-256 61f9cd86326fae35a1bf42331ff922f2c9a6bbebb6de45f292c540fb525cc0ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for hyrr-0.1.3-py3-none-any.whl:

Publisher: release.yml on exoma-ch/hyrr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page