ACTINV v1.3.1 — release notes
ACTINV 1.3.1 is a feature release centred on the measurement-driven product line: assays, facility
twins, certified decision loops, and calibrated uncertainty. It also lands the resolved-resonance
self-shielding quadrature — SIGMA1-broadened per temperature — plus the chance-constrained design
optimizer and the OpenMC/MCNP/Serpent photon-source export surface. Schemas are additive;
runs that do not touch the surfaces listed under "Results to re-check" are unchanged.
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.3.1Supersedes v1.3.0
v1.3.1 is a packaging repair on top of v1.3.0: actinv-core bundled the IAEA clearance table via a
path outside the crate root, so the crates.io tarball and the PyPI source distribution could not
build it. The table now lives inside the crate (crates/actinv-core/data/, byte-identical to the
canonical data/clearance_iaea_2004.json, drift-guarded by controls/g2_p54_exactness.py). Use
v1.3.1; v1.3.0's PyPI wheels remain valid, but its sdist cannot build from source.
Results to re-check
- Shielded runs at temperatures above the first table column. Resolved-resonance Bondarenko
factors are now computed per temperature column on a SIGMA1-broadened pointwise grid instead of
reusing the lowest-temperature curve. Capture factors relax toward 1 as temperature rises
(resonance valleys fill in), which is the correct physics — the previous columns were over-shielded.
Factors divide by each column's own broadened dilute mean; the emittedgroup_unshielded_b
reference is the lowest tabulated temperature. - Specs combining
uncertaintyandself_shielding. The combination was previously rejected;
it now runs — the covariance collapse folds the shield plan's per-row scales so sampled parameters
mean what the matrix means. Specs that relied on the refusal for validation order will instead fail
later, on the missing or mismatched covariance artifact. sigma_p_bfor resolved-heavy nuclides. Composition-dilution σ₀ estimates now include the
lethargy-mean elastic contribution from resolved ranges; effective σ₀ can move for targets whose
tables previously carried the unresolved-range mean only.- Every
twin/assimilate/decideresult is new output — these commands did not exist in 1.2.1.
What changes
Measurement assimilation (the D5 lane)
actinv assimilatefolds anactinv-assay-1document into a response band: scalar assays,
multi-nuclideentries(one HPGe count updates several nuclide bands, with a worst-of aggregate
verdict so one conflicting line cannot hide), andmixtureassays measuring a linear combination
Σcᵢ·xᵢ(gross activity, total heat, dose) via a Kalman H-row update that emits the induced
correlation matrix. Every assay emits the Kalman gain and aconsistent/marginal/conflict
verdict.--emit-resultwrites fused bands back into a valid run result, chainable intodecide,
clearance, or another assay. Results persist the joint ln-space Gaussian under
assimilated.state: a later assay on one member of a correlated mixture conditions its siblings
(stampedkind: correlated, listed underjointly_moved). Malformed, inconsistent, or
time-mismatched states fail closed; a scalar-only fusion emits no state.actinv twinevaluates declared clearance limits on per-cell certified band edges over mesh
output: cell×time×limit margins, facility rollup, binding cells,componentsrollups,
per-cellmaterialsoverrides,dose_points(declared point-kernel detectors with optional slab
shields; photon flux per step,dose_gy_hwhen a conversion is declared), per-cellassays
fused before margins,propagatesdeclared-ρ propagation to sibling cells,dose_assaysthat
invert the point-kernel forward map into per-cell dose-share updates, and
facility.assay_recommendations— for every restricted (cell,time,limit), the assay precision
needed to clear it at the prior nominal, sorted achievable-first.- The desktop workbench results page folds scalar/entries/mixture assays into a loaded result
through the same fusion core the CLI uses (assimilate::fuse_document) — verified bit-identical.
Calibrated uncertainty
- Sampled decay/yield channels with per-sample streams and paired survival (P43); measured band
coverage campaign (P44); executed whole-workload benchmark (P45); evaluation-intelligence layer
over five corpora (P46); isomer-resolved uncertainty and channel introspection (P58);
measurement-design reports with Kalman-gain value-of-information (P50, P60). uncertainty.unmodeled_relativedeclares an explicit unmodeled band term;
uncertainty.unmodeled_tableresolves it from a calibratedactinv-unmodeled-table-1artifact
(per-material key or dominant-element inference, spec fallback then table default). The D2
calibration record shipsu_pooled = 0.437fit/holdout SHA-split on the decay-aware TENDL-2023
corpus, held-outu@68% = 0.306.
Certified decision machinery
actinv clearance— certified probabilistic clearance against the shipped IAEA limits table (P54).actinv decide— one-command loop: banded solve → certified margins → audit → measurement
targets, emittingactinv-decision-1(P64).options.screen— certified screening tier: prune-bound widening emits per-step certified
intervals for every banded response (P65); the screened tier drives the workbench's live sweep
at sub-second warm latency (P68).options.flux_scale— certified linear flux-scaling for trace-regime responses with an
optical-depth correction bound; the live slider answers flux points in ~60 ms with a
flux_scalecertificate (P70).actinv optimize— chance-constrained design search (P49) with banded-constraint certification
and nominal-edge margins (P56), per-candidate certified early-exit viaoptimizer.prescreen
(P73), aactinv-surrogate-1surrogate tier that evaluates candidates through a certified
multilinear band (ŷ ± ε_cert, holdout-max-residual plus max-secant-slope distance; refuses
extrapolation, never emits zero-width certificates) with fallthrough to prescreen/full solve
(P74), and a persistent prepared-input cache (P62) with certified Pareto frontier output (P67).
Interoperability and throughput
actinv export-r2s— banded R2S photon-source interchange (actinv-r2s-source-1);export-r2s-joint
adds the joint-covariance variant for correlated spatial dose bands (P52/P53).actinv export-source {openmc|mcnp|serpent}— foreign photon-source adapters over
actinv-r2s-source-1under the INTERCHANGE_TRANSPORT contract (P57).actinv worker— persistent prepared-input cache serving NDJSON requests; 0.37× warm wall on
identical specs, bit-identical results (P51), andactinv export-mcnpwrites a full
shutdown-source SDEF.actinv qualify inverse— GLS irradiation-history estimation under nuclear-data covariance (P55).outputs audit— chain-completeness audit surface (P61).- Python SDK:
actinv.decide,actinv.optimize, and screen options (P66). - Workbench: live certified probe on a shared-cache worker — the sweep slider submits the newest
position only and each landed point carries a P65 screen certificate (P69); live Pareto frontier
view over landed (activity, heat) pairs (P71).
Nuclear data and physics
- Resolved-region self-shielding (D6e):
build-shieldingfolds resolved-resonance ranges into
per-group Bondarenko factors by knot-seeded adaptive Gauss-Legendre quadrature over the pointwise
MF=2 reconstruction (Breit-Wigner, Reich-Moore, R-matrix limited), SIGMA1-broadened per
temperature column with per-column dilute-mean normalization. Gate: W-186 capture factor falls to
0.028 at σ₀=0.1 and relaxes monotonically with T; Fe-56 smooth groups stay at 1.0. - D6 accuracy lane:
evalspread(cross-evaluation spread as a band term), decay overrides
(actinv-decay-override-1content for measured half-lives/branchings),product_coveragein every
build print (which nuclides sit beyond evaluated data),xNultra-fine group refinement
(fispact-709x4= 2836 subgroups), TENDL isomer routing fix (LIS/ELIS resolution), and the
decay-aware corpus benchmark — the default build's residual population sits at the
evaluated-data boundary (787/3,632 unbuilt, all without an evaluated file in any local library). - Benchmark posture is documented in
COMPETITIVE_BENCHMARK.mdat the repo root: identical-input
parity with FISPACT-2007 inside decay-eval noise on the decay-aware TENDL-2025 corpus, plus the
OpenMC ENDF-8 head-to-head section.
Qualification boundary
The qualification posture is unchanged from v1.2.1: QUALIFICATION.md governs. The P18 corpus
remains P18-FAIL — the measured gap is a TENDL-2025 evaluation regression (documented by the
CB2/FNS-gap diagnosis and P46 evaluation intelligence), not a solver defect; the P25 successor
investigation is a bounded cause-diagnosis milestone, still open. Conditional verdicts (P43, P44,
P45, P46, P47, P48, P49) carry their published amendment histories; closed verdicts are listed in
the ledger.