Skip to content

Add (n,n') inelastic isomeric activation to depletion chains - #123

Open
jon-proximafusion wants to merge 1 commit into
isomeric-chain-datafrom
isomeric-chain-nnprime
Open

Add (n,n') inelastic isomeric activation to depletion chains#123
jon-proximafusion wants to merge 1 commit into
isomeric-chain-datafrom
isomeric-chain-nnprime

Conversation

@jon-proximafusion

Copy link
Copy Markdown
Collaborator

Second part of #121, building on #122. Adds (n,n') (MT=4) as a depletion chain reaction so that inelastic scattering that only changes the isomeric state of the target is representable, e.g. Nb93(n,n')Nb93_m1, In115(n,n')In115_m1, Pb204(n,n')Pb204_m1, which the FNS decay-heat benchmarking showed to be significant activation pathways.

Changes

  • REACTIONS["(n,n')"] = ReactionInfo({4}, ()) in openmc/deplete/chain.py, DADZ entry (0, 0), REACTION_MT["(n,n')"] = 4, and the C++ REACTION_TYPE_MAP alias so existing depletion operators can tally the reaction by name.
  • Chain.from_endf emits (n,n') entries only when isomeric production data exists for the parent, and always includes the ground-state self-loop so the Bateman loss and gain terms stay exact (loss at the full MT=4 rate, gain of rate * br per target). Parents without data get no self-loop at all, so chains built without isomeric branching are unchanged.

Compatibility note

Chains containing (n,n') require an OpenMC version with these map entries; older versions raise KeyError when setting up depletion tallies. That is why the reaction is only emitted under isomeric_branching=True and why this is a separate PR.

Verification

Unit tests cover the registry entries and atom conservation of self-loop matrices; an integration test on the real ENDF/B-VIII.1 Nb93 evaluation checks the emitted self-loop pair (ground 1.0, m1 0.0) and the verbatim 34-point MF=10 table, and that Am241 (no MT=4 isomeric data) gets no (n,n') entries.

Registers (n,n') as a chain transmutation reaction (MT=4) with entries
in REACTIONS, DADZ, REACTION_MT, and the C++ REACTION_TYPE_MAP so that
existing depletion operators can tally it by name. Chain.from_endf
emits (n,n') entries only when isomeric production data exists for the
parent, always including the ground-state self-loop so the Bateman
loss and gain terms stay exact; parents without data get no self-loop
at all. Covers cases like Nb93(n,n')Nb93_m1 and In115(n,n')In115_m1
that are pure isomeric-state changes with no nuclide change.

Tests cover the registry entries, atom conservation of self-loop
matrices, and an integration test on the real ENDF/B-VIII.1 Nb93
evaluation. See #121.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants