From 36cf8934fd5ed9875963439eddd0bea76557dc74 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Thu, 6 Oct 2016 22:17:52 -0500 Subject: [PATCH] Fix units for fission energy release in ENDF files --- openmc/data/fission_energy.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/openmc/data/fission_energy.py b/openmc/data/fission_energy.py index 9479e67313..687cb5703e 100644 --- a/openmc/data/fission_energy.py +++ b/openmc/data/fission_energy.py @@ -16,13 +16,15 @@ if sys.version_info[0] >= 3: basestring = str -def _extract_458_data(ev): +def _extract_458_data(ev, units='eV'): """Read an ENDF file and extract the MF=1, MT=458 values. Parameters ---------- ev : openmc.data.Evaluation ENDF evaluation + units : {'eV', 'MeV'} + The units are used in values returned. Returns ------- @@ -86,12 +88,13 @@ def _extract_458_data(ev): for coeffs in uncertainty.values(): coeffs[2] *= 1e-6 # Convert eV to MeV. - for coeffs in value.values(): - for i in range(len(coeffs)): - coeffs[i] *= 10**(-6 + 6*i) - for coeffs in uncertainty.values(): - for i in range(len(coeffs)): - coeffs[i] *= 10**(-6 + 6*i) + if units == 'MeV': + for coeffs in value.values(): + for i in range(len(coeffs)): + coeffs[i] *= 10**(-6 + 6*i) + for coeffs in uncertainty.values(): + for i in range(len(coeffs)): + coeffs[i] *= 10**(-6 + 6*i) return value, uncertainty @@ -158,7 +161,7 @@ def write_compact_458_library(endf_files, output_name='fission_Q_data.h5', continue # Get the important bits. - data = _extract_458_data(ev) + data = _extract_458_data(ev, 'MeV') if data is None: continue value, uncertainty = data