Repository navigation
ACTINV 1.5.0
ACTINV v1.5.0 — release notes
ACTINV 1.5.0 carries the FISPACT-II parity program: a step summary with a depletion table, FISPACT-style
report tables, library inspection, a FISPACT-II deck importer, geometry self-shielding, power and
wall-loading normalization, spontaneous-fission and burn-up outputs, route-level pathways, and opt-in
regulatory tables. It also includes a hardening pass (P140) and the fixes to trace mode and pathway
attribution found along the way. Every addition landed under a registered protocol whose verdict is
recorded in results/ and in the ledger. The parity features are opt-in and leave default results
unchanged; the exceptions are listed under "Results to re-check".
Upgrade the Python package with:
python -m pip install --upgrade actinvRust CLI users can install this exact version with:
cargo install --locked --force actinv-cli --version 1.5.0Results to re-check
Four items change default results: the ledger counts and pathway attribution from the P140 hardening
pass (ledger entries 168–171), which leave inventories unchanged, and the two trace-mode fixes (P133,
P134), which do change trace-mode results where they apply. The items after those affect only the
opt-in features named.
- Ledger counts. The ledger gains
unmodelled_decay_branches_to_leakage: decay branches whose mode
the chain does not model. It is emitted only when nonzero (3 with the shipped decay data, so every run
on that data carries it) and is read as 0 when absent (P140 Amendment E). A fission that follows
another transition (RTYP 2.6, beta-delayed fission) is counted there and is no longer counted as
spontaneous fission of the parent, sospontaneous_fission_branches_to_leakagefalls from 129 to 126
in the default ledger. Anything that compares whole ledgers or certificates, or hashes a normalized
result, will see the new key and the lower count; the inventories are byte-identical. - Pathway attribution (
pathways, trace mode). Production fed by the decay of a radioactive bulk
nuclide is now included, andpathway_closureis 1 when a nuclide in the inventory has no chain at
all. Results change only for materials with such a nuclide: Mo-100 double-beta decay is now the leading
Ru-100 route in SS316; W-186 alpha decay feeds Hf-182 in tungsten (the shipped shielding example's
closure falls from 0.98 to 5e-16); the natural-uranium closure falls from 1.0 to 4e-15. - Trace mode and radioactive initial material (P133). Trace mode used to hold radioactive initial
material constant.autonow also weighs bulk decay over the schedule and selects coupled when any
initial nuclide decays by 1e-6 or more; explicit trace is refused there. On the base release, Co-60 at
1e20 atoms/g decayed for one half-life reported 4.17e11 Bq/g where the correct value is 2.08e11.
Restart or cooling runs from an activated inventory that did not setcoupledshould be rerun. - Trace-mode pathway attribution (P134). Attribution ignored the step's flux multiplier and spectrum
override, and lost production after a cooling gap;pathway_closureshowed the error. It now uses the
solve's own matrices, and power-driven steps report pathways over their realized sub-intervals. - Geometry self-shielding: resolved resonances are clipped to the evaluation's resolved range. A
resolved resonance is now used only inside its range's [EL, EH]; the others are reported as
resonances_outside_range. For TENDL-2025 W-186 the resolved range ends at EH = 4341 eV although levels
are listed to 17.3 keV: 108 of its 172 levels lie above EH and are dropped, so the 27 groups above
4365 eV are no longer shielded. Their factors were as low as 0.71 at 0.1 cm and 0.94 at 0.01 cm; the 35
groups below are bit-identical. For ENDF/B-VIII.1 W-186 the clip removes one group above 10 keV. We
have not verified whether FISPACT-II clips at EH in the same way; no FISPACT-II foil factors were
available, so the clip is a judgement, not a parity result. The TENDL-2025 W-186 foils at 0.01 cm and 0.1 cm
were the only two cases in the P140 identity comparison (533 pairs) that differed beyond the ledger
changes above; this clip explains them (ledger entry 170). - Photon outputs.
photon.bremsstrahlungused the decay record's average beta energy per decay of
the parent as the energy of one electron per decay. It now usesfelectrons per decay (the
beta-minus branching) of energyER / f; a nuclide with no beta-minus mode is a missing input.
Partial beta emitters such as Cu-64 (about 2.6 times more energy) and K-40 change; pure beta-minus
emitters do not. The point-source dose isnullwhere decay-record gamma power has no photon spectrum,
or where the distance, mass or air density is non-finite or out of range. - Bundled radiological tables. The bundled tables were regenerated, so their SHA-256 values changed.
A spec that declares a bundled hash must use the new one. A misspelledradiological.responses
selector for a bundled table now fails at validation. - Depletion and sampling statistics. In
summary.depletion, trace fractions use a cumulative exponent
(FNS Fe fractions moved by 2.6e-5 relative) and no uncertainty is invented for an excluded covariance
block. One sample has no standard deviation, correlations and bootstrap errors need at least three
samples, andfirst_orderreadsnot_comparablewhen channels beyondcross_section_mf33are sampled.
Outside these items, default results do not move: before the P140 pass, the P122–P139 additions were
each checked byte-identical (apart from timing) against the previous release build on the recorded
default specs, and the P140 identity comparison found no other difference.
What changes
Step summary and depletion table (P122, P135)
summarywithmaterial.density_g_cm3: the full inventory with grams, Bq, alpha/beta/gamma W and
half-life; Ci, activity and heat excluding tritium; per-cm³ and absolute totals; an exact
branching-weighted activity split by decay mode; an element table; dominant lists with cumulative
percent and counts to 90 % and 99 %; MIND and NOSTABLE filters. An independent MT=457 parse made 32,158
comparisons with no mismatches (P122).summary.depletion(FISPACT-IIDEPLETION): per step and initial nuclide, atoms at start and end,
step and cumulative depleted fraction, and the removal rate split into decay and reaction channels by
MT, with shares that sum to one. With an MF=33 covariance each channel also reports the relative
standard uncertainty of its one-group rate (checked against an independent collapse of the TENDL-2025
covariance within 1e-6). The joint total is not evaluable on Fe, where every isotope has an uncovered
reaction channel, and is omitted there (P135, PASS under Amendment A).
Report tables, inspection and the deck importer (P131, P132, P137, P138)
actinv report RESULT.json: FISPACT-styleTAB1toTAB4, step totals, dominant and element tables,
adepletiontable and a plot-readytimeseries(GRAPH,NUCGRAPH), as csv, tsv, markdown or text.
Values are exact{:e}with units in the headers; columns the result lacks are omitted and named,
never filled in. All 32,781 CSV cells were rebuilt independently from the result JSON (P137).actinv inspect {decay, xs, yields, library, groups}queries decay data, group and one-group cross
sections for a spectrum, independent and cumulative fission yields, and group boundaries without a run
(P131). The command knows every named group structure and honoursrebin.actinv import-fispact DECK.iconverts a FISPACT-II input deck into an ACTINV spec with a sidecar that
reports every keyword as mapped, approximated, noted or unsupported;--strictfails on unsupported.
All 132 public FNS decks import, and 2,511 steps agree with the decks' own.outfiles (P132, P138).
POWER, WALL, PARTITION, OVER, GRPCONVERT, DOSE 2, GROUP, BREMSSTRAHLUNG, PATH/ROUTES and ATWO are
mapped. After P140 it also accepts three-letter abbreviations such asTOL(as used in the CoNDERC
fission decks), NOHEAD, MCSEED and the legacy switches, and reports supersededTIMElines,OVER
after a step andDOSE 1afterDOSE 2; deeply nested or hugePULSEloops are refused before
expansion. A deck that irradiates without a fluxes file is refused by the command-line importer.- The report tables and the importer moved into
actinv-core(actinv_core::report,
actinv_core::fispact_import) and the data catalog intoactinv-data(actinv_data::catalog) so the
browser workbench can use them.actinv report,actinv inspectandactinv import-fispactoutput is
byte-identical to before the move.
Data and schedule controls (P124, P128, P130)
- All FISPACT-II neutron group structures, fispact-66 to fispact-1102 (to 1 GeV), and an opt-in
high-energy residual-production splice forbuild-library(P130). The 13 structures equal their
source boundary for boundary. - In-run spectrum conversion between group structures (
spectrum.rebin), first-wall-loading
normalization (wall_loading_MW_m2), instantaneous elemental partition at step start, per-nuclide and
per-MT cross-section, half-life and uncertaintyoverrides, and decay-only runs without a library
(P124). - Triton and helion projectiles, and schedule-level library switching (P128). Library switching is
verified. Triton and helion are implemented and unit-tested but not exercised on real data, because no
triton or helion sublibrary is installed. - Schedule refusals added in P140: a rebin that lands no flux or reaches outside the spectrum,
kermain
decay-only runs, damage rows without heating, an empty partition, and a 14 MeV wall-loading fallback
that is refused for non-neutron projectiles. Power steps that do not converge warn on stderr.
Geometry self-shielding (P129, P139)
- Foil, wire, sphere and cylinder geometries by the universal sigmoid curve, with per-group dilution
overrides (P129).geometry.density_g_cm3defaults to the material density and a disagreement is
refused. - R-matrix-limited (LRF=7) evaluations such as ENDF/B-VIII and FENDL-3.2c are read, deriving the neutron
and capture widths from the spin-group channel widths or reduced-width amplitudes (P139, PASS under
Amendment A). For ENDF/B-VIII.1 W-186 the group factors equal an independent recomputation from MF=2
exactly. Against TENDL-2025 on 53 common groups the factors differ by up to 5.4 % at 0.01 cm and 29 %
at 0.1 cm (report-only). - The resolved-range clip described under "Results to re-check".
Power normalization (P126)
- A groupwise kerma table (
scripts/build_kerma_table.py, from NJOY HEATR output), instantaneous nuclear
heating per step, andpower_W_cm3/power_W_per_gsteps whose flux is renormalized on adaptive
sub-intervals (P126, PASS under Amendment A; the initial G5 failure stays preserved). - FISPACT-II normalizes once per step.
max_substeps: 1reproduces that and is byte-identical to the
flux-driven run at the start-of-step multiplier. On a B-10 replay the end-of-step power error is
−39.3 % with one sub-interval, −1.52 % at 64 and −0.097 % at 4096. That comparison is report-only.
Fission and burn-up (P125)
- Spontaneous-fission products from MT=454 yields, the cumulative fission count (the rate integral, a
documented difference from FISPACT-II), burn-up (% FIMA and MWd/kg HM) and the spontaneous-fission
neutron source (options.fission). Cf-252 spontaneous fissions agree with a 60-digit chain solve within
2.8e-14. The spontaneous-fission yield routing was data-limited (no spontaneous-fission yield
sublibrary is installed) and is covered by unit tests only.
Pathways and routes (P127, P134)
- Multi-link routes with loops, and generic pathways, each integrated exactly through every schedule
step, with a per-target closure of what the listed routes leave unexplained (P127). Every route for
four Fe-activation targets was recomputed independently as a linear chain: 154 comparisons, all within
1e-8. The pathway fixes are described under "Results to re-check".
Sampling statistics (P136)
study.robustness.statistics(FISPACT-IISENSITIVITY/MCSAMPLEoutput): per-response
distribution (mean, std, skewness, exact order-statistic percentiles, histogram), input-output Pearson
and Spearman tables by sampled parameter, a response-response correlation matrix, and bootstrap
standard errors next to the first-order std. Absent by default, with existing records unchanged.
Input correlations were recomputed only for the flux and composition parameters, because per-sample
MF=33, decay and yield inputs are not in the record.
Photon, dose and regulatory outputs (P123)
- The Steiner 22-group photon structure, a point-source dose rate in air at a distance
(photon.point_source, FISPACT-II manual Eq. 63, no build-up), a separately reported thick-target
bremsstrahlung component (photon.bremsstrahlung, withelectrons_per_decay,
zero_lower_edge_energy_fractionandenergy_closurefields), and the A2 index. - Opt-in
actinv report --tables regulatory: the non-dose radiological responses (clearance and waste
indices, A2 and activity limits) per step, with activity coverage. The default table set is unchanged. - Opt-in bundled tables: IAEA SSR-6 A1/A2/exempt values from 49 CFR 173.435 and 173.436, and Euratom
2013/59 Annex VII clearance and exemption levels. Unlimited A1/A2 rows, and progeny included in a
parent's value, are covered with zero contribution through optional per-responseunlimitedand
covered_by_parentlists, sorequire_completeworks for activation inventories. - ICRP 119 dose coefficients are never bundled.
scripts/regulatory/fetch_icrp119.pybuilds the table
locally from the source you supply.
Other additions
actinv export-source alara: writes one.photonSrcfile per cell plus an index (P102; verified
againstnucleide0.16.0's own ALARA photon-source reader).actinv wasteandactinv waste budget: nominal U.S. Part 61 component classification and verified
class-specific impurity limits (P105);actinv waste boundsfor declared activity intervals (P107);
actinv waste compositionandactinv waste composition solvefor declared composition ranges and
native-run verification of the extremum compositions (P108, P110). These check selected points. They do
not bound solver or nuclear-data error, infer probability, or qualify disposal acceptance. See the
waste handbook.resolve_inputsand--fileschecks cover every path-bearing field. Problems that namecatalog:
data resolve againstACTINV_DATA_DIRoractinv-databeside the problem in the desktop app's input
resolution, andcheck_filesnames an unknown catalog id.
Dependencies (P141)
zipmoves to 9.0.4 because upstream yanked 8.6.0 and every earlier release after security advisories about
archive extraction, which ACTINV does not use. A full TENDL-2025 proton build, a neutron activation library and a
covariance sidecar are byte-identical to the 8.6.0 builds, and the three shipped libraries read identically.
Hardening pass (P140)
P140 reviewed seven module groups with reviewers who had not implemented them: 90 findings, three
rejected with reasons. Every accepted behavioural finding was reproduced by a regression test written to
assert the correct behaviour (107 failed on the unrepaired code), then repaired. The repaired candidate
passed the 151-case matrix (133 pass, 18 documented refusals), the handbook-fragment check (97 of 97
gating items) and the importer stress check (132 FNS, 2 fission and 6 pypact decks, 5,426 synthetic
decks, no panic), and CI was green on the pushed commit (ledger entries 168–171, P140: PASS). The
changes that affect results are listed under "Results to re-check"; the rest are refusals and
validation. Two P140 points are carried forward as open: the self-shielding clip above, and the
bremsstrahlung group-energy rule, which keeps FISPACT-II's midpoint rule (Eq. 67) and so overshoots the
energy in the group holding the endpoint energy; energy_closure now reports it.
Where ACTINV stands against FISPACT-II
COMPETITIVE_BENCHMARK.md tracks 28 FISPACT-II capability rows and maps the
94 control keywords the importer recognizes: 61 parity, 5 ahead (POWER, UNCERTAINTY, COVARIANCE,
PATH, ROUTES), 8 partial, 4 absent and 16 not applicable. The statuses rest on the closed verdicts
cited above. Remaining gaps: SPEK, XSTHRESHOLD, NOXRAY and IRON are absent; FISYIELD,
CUMFYLD, USEFISSION, NOFISS, FISCHOOSE, PROBTABLE, ALLDISPEN and ATDISPEN are partial; and
several keywords exist in ACTINV but are not mapped by the importer. No speed comparison with FISPACT-II
is made or implied.
Desktop and browser
Desktop 0.4.0-preview.1 ships the new 13-page interface on the 1.5.0 solver: Outputs, Charts, Tables,
Photons & dose and Pathways pages, a per-step Drive, an Import FISPACT-II deck command, an optional
material density, and controls for gas production and every uncertainty channel. The browser workbench gets the same pages and still never runs the solver. The look is
unchanged. See the desktop 0.4.0-preview.1 release and
Versions and releases.
Known limitations
All limits in the qualification boundary and
data limitations still apply. In particular:
- Whether FISPACT-II clips resolved resonances at the evaluation's upper resonance energy is unknown
(see "Results to re-check"). - Triton and helion projectiles, and the spontaneous-fission yield routing, are not exercised on real
data. - The
actinv waste-verifycommand does not yet listunmodelled_decay_branches_to_leakageamong its
ledger reasons.
Each verdict cited above records its exact scope; the changelog has the full list of
changes.