From e510064b9cbf58bbf4e630d9a61f151a67043d62 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Wed, 2 Oct 2019 21:09:18 -0500 Subject: [PATCH] Make sure heating is calculated correctly with threshold fission When trying to process Pa233 from ENDF/B-VIII.0, which has a threshold fission reaction, I discovered that calculating heating numbers crashed because we were trying to do arithmetic on arrays of different sizes. Re-evaluting the fission cross section on the proper energy grid does the trick here. --- openmc/data/neutron.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmc/data/neutron.py b/openmc/data/neutron.py index 8a6c889817..ea14be7844 100644 --- a/openmc/data/neutron.py +++ b/openmc/data/neutron.py @@ -874,7 +874,7 @@ class IncidentNeutron(EqualityMixin): fission = data.reactions[18].xs[temp] kerma_fission = get_file3_xs(ev, 318, E) kerma.y = kerma.y - kerma_fission + ( - f.fragments(E) + f.betas(E)) * fission.y + f.fragments(E) + f.betas(E)) * fission(E) # For local KERMA, we first need to get the values from the # HEATR run with photon energy deposited locally and put @@ -887,7 +887,7 @@ class IncidentNeutron(EqualityMixin): kerma_fission_local = get_file3_xs(ev_local, 318, E) kerma_local = kerma_local - kerma_fission_local + ( f.fragments(E) + f.prompt_photons(E) - + f.delayed_photons(E) + f.betas(E))*fission.y + + f.delayed_photons(E) + f.betas(E))*fission(E) heating_local.xs[temp] = Tabulated1D(E, kerma_local)