using openmc.deplete.Chain results in negative branching ratios for JEFF-3.3
Bug Description
Hi,
generating a JEFF-3.3 depletion chain using the openmc.deplete.Chain object (for instance using this script from @shimwell's repo) results in 5 isotope having negative decay branching ratios, namely:
- Cd99
- Cs119
- Cs120
- Cs120_m1
- Bk249
Manually inspecting the corresponding decay files, it seems the sum of branching ratios for these isotopes' decay add up to more than one.
For instance Cs120 has the following decay modes:
- ec/beta+ br = 1.0
- ec/beta+,alpha br = 2e-7
- ec/beta+,p br = 7e-8
This adds up to 1.00000027. When generating the chain using OpenMC, line 399 to 404 in this file tweak the last BR to ensure that the sum is equal to one. For our five nuclides, this results in the last BR becoming negative.
Though having BRs adding up to more that one is weird, I am not sure tweaking the last one is the right approach, as it leads to unphysical effects. Why not renormalize all BRs by dividing them by the total?
I can make a small PR if it needs changing but I'd like to have an additionnal opinion on the normalization strategy, and the reasonning behind the current approach.
Steps to Reproduce
In a directory containing JEFF-3.3 decay files available here:
import openmc.deplete
from pathlib import Path
chain = openmc.deplete.Chain.from_endf(decay_files=Path(".").glob("*.ASC"), fpy_files=[], neutron_files=[])
modes = chain.nuclides[chain.nuclide_dict["Cs120"]].decay_modes
print(modes)
Environment
Tested using OpenMC's latest develop branch.
Cheers, Nicolas
@nplinden Thanks for reporting this. Rather than renormalizing by dividing by the total (which will change all the BRs), perhaps we can change it to subtract from the largest BR (instead of the last), which should also avoid the negative issue. Would you be able to implement that?
Addressed in #3080