Kronos Research Toolkit
One versioned, anchor-tested Python engine behind the Kronos breeder and burner designs — replacing ~950 one-off scripts that each re-derived the same physics.
Every headline number Kronos publishes can be reproduced by running this library.
Where the toolkit stands in for a high-fidelity code it has not run, it says so
honestly: that result is tagged [T] and names the real code that would retire it.
from kronos_toolkit.core import evaluate_breeder, solve_mirror, surplus_kg_per_fpy
from kronos_toolkit.verify import run_regression
run_regression() # reproduces the frozen record, all anchors
Why this exists
The research tree had grown ~950 loose .py files, each re-implementing the mirror
0-D power balance, the D-T breeder evaluator, TBR/neutronics, UQ, and the surplus
law. Fragile, un-versioned, inconsistent. This toolkit unifies those engines,
verifies them against a frozen anchor suite, and provides an adapter layer
so the real high-fidelity codes become plug-and-play the moment they are available.
It does not substitute high-fidelity physics. It makes the program cohesive and honest about what is demonstrated versus what is reach.
Install
pip install -e . # core (numpy, scipy)
pip install -e .[plot] # + matplotlib for report plotting
pip install -e .[neutronics] # + OpenMC for real neutron transport
Python 3.9+. Deterministic throughout (seed 20260726).
Modules
| module | what it is |
|---|---|
core |
the frozen engines: D-T breeder evaluator, D-³He tandem-mirror power balance, reactivities (Bosch-Hale + embedded cross-section table), radiation, confinement, tritium surplus law |
verify |
the frozen-anchor regression suite + [D]/[T]/[R]/[Q] provenance tagging |
uq |
Monte-Carlo, tornado, Sobol/Saltelli, model-form bands — deterministic |
neutronics |
TBR, coil fluence, shielding, streaming — OpenMC if installed ([D]), analytic fallback otherwise ([T]), one API |
hifi |
the adapter spine: 7 adapters that call the real code if present, else a documented surrogate that names what retires it |
report |
study scaffold (pre-register → run → CSV → manifest → verdict), brand plotting, paper-table export, no-economics firewall |
viz |
the visual research layer — kronos-viz build regenerates a self-contained HTML dashboard from live data |
The anchor guarantee
The toolkit is only trustworthy if it reproduces the frozen record exactly. The regression suite pins every engine:
python -m kronos_toolkit.verify.regression
breeder.Q 3.423913 (dt_evaluator config 22021)
breeder.P_fus_MW 88.660424
burner.Q_E 1.318121 (mirror M-45 design point)
burner.P_fus_MW 4298.499304
surplus.1.80 3.979503 (net-TBR → kg-T/fpy)
neutronics.net_tbr 0.742400 (3-D blanket, H1 anchor)
... ALL PASS (19/19)
Any drift is a failure. The same anchors pin the digital-twin simulator's forked
solver (.../3D_Model .../solver/_toolkit_anchor_bridge.py) so the twin and the
canonical engine can never silently disagree.
Honesty by construction
- Surrogates are tagged. A reduced-order stand-in returns a
[T]value that must name the real code that retires it — e.g. the 0.785× peak-fiber coil-stress factor is[T], retired by ANSYS/COMSOL/Elmer FEA. - Gates are honest. The dashboard's gate board reports red/yellow/green from the live engines: breeder net electric power is NO-GO (Q is scientific gain, not net electric); tritium self-sufficiency is a deficit at the 3-D blanket (net TBR 0.74); the burner reaches Q_E>1 only with a plug-density requirement not yet demonstrated.
- No economics in public outputs.
report.guardscans every public export and refuses to emit if a cost/price/valuation term appears. Thevizdashboard runs the same firewall and defaults to the public view.
Worked examples
Two reference studies in study_template/ show the whole pipeline and double as
integration tests:
python study_template/tritium_exporter_push.py # scan → confirm → surplus
python study_template/coil_buildability.py # coil stress vs REBCO allowable
The dashboard
kronos-viz build --out dashboard.html --results study_template/_results
kronos-viz build --confidential --out internal.html # internal view
A single offline HTML file: gate board, design-point cards, extrapolation ledger (reach vs demonstrated), the study results with reproducibility hashes, and the paper/DOI tracker — all read live from the frozen anchors.
Migrating existing scripts
See MIGRATION.md — it maps the highest-traffic legacy scripts to
their toolkit calls and provides shims so hot-path work can switch over incrementally.
License
Apache-2.0 (see LICENSE) — chosen over MIT for its explicit patent grant.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kronos_toolkit-0.1.0.tar.gz.
File metadata
- Download URL: kronos_toolkit-0.1.0.tar.gz
- Upload date:
- Size: 53.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26423c3382167c183cbf74ae74dec318378b6202e329fb6dd9aadd253193508c
|
|
| MD5 |
72b8e71b77793c89ba63ae05a3fae9c3
|
|
| BLAKE2b-256 |
824c7bb5220883bd84481f752f4c47e2e460f030c086b0825c20d9df467cb8ce
|
File details
Details for the file kronos_toolkit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kronos_toolkit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 61.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
713ac0eeafa892ec54dcf3a7d2ca03befeab93fa89cfcfe2925e778c4f18c365
|
|
| MD5 |
024061aa74bdb19f4dc1cce4a9db26cf
|
|
| BLAKE2b-256 |
35723f21d44f8aaa1b8db55094b203b17ed999f452b62b293aa37677163bc312
|