From c08d9bc142d292ccd78cd4596c9cf504fb067cf9 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 27 Aug 2021 11:08:42 -0500 Subject: [PATCH 1/4] Fix get_decay_modes ('unknown' wasn't recognized) --- openmc/data/decay.py | 7 +++++-- tests/unit_tests/test_data_decay.py | 12 ++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/openmc/data/decay.py b/openmc/data/decay.py index 3e7d9599c6..a4e5405a2b 100644 --- a/openmc/data/decay.py +++ b/openmc/data/decay.py @@ -57,8 +57,11 @@ def get_decay_modes(value): List of successive decays, e.g. ('beta-', 'neutron') """ - return [_DECAY_MODES[int(x)][0] for x in - str(value).strip('0').replace('.', '')] + if int(value) == 10: + return ['unknown'] + else: + return [_DECAY_MODES[int(x)][0] for x in + str(value).strip('0').replace('.', '')] class FissionProductYields(EqualityMixin): diff --git a/tests/unit_tests/test_data_decay.py b/tests/unit_tests/test_data_decay.py index cb4560d515..06b8e6bedd 100644 --- a/tests/unit_tests/test_data_decay.py +++ b/tests/unit_tests/test_data_decay.py @@ -31,6 +31,18 @@ def u235_yields(): return openmc.data.FissionProductYields.from_endf(filename) +def test_get_decay_modes(): + assert openmc.data.get_decay_modes(1.0) == ['beta-'] + assert openmc.data.get_decay_modes(6.0) == ['sf'] + assert openmc.data.get_decay_modes(10.0) == ['unknown'] + + assert openmc.data.get_decay_modes(1.5) == ['beta-', 'n'] + assert openmc.data.get_decay_modes(1.4) == ['beta-', 'alpha'] + assert openmc.data.get_decay_modes(1.55) == ['beta-', 'n', 'n'] + assert openmc.data.get_decay_modes(1.555) == ['beta-', 'n', 'n', 'n'] + assert openmc.data.get_decay_modes(2.4) == ['ec/beta+', 'alpha'] + + def test_nb90_halflife(nb90): ufloat_close(nb90.half_life, ufloat(52560.0, 180.0)) ufloat_close(nb90.decay_constant, log(2.)/nb90.half_life) From 6fd8971eb71231ec5ca550d132e0aab3c5ab8ce3 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 30 Aug 2021 22:41:44 -0500 Subject: [PATCH 2/4] Update recognized thermal scattering materials for ENDF/B-VIII.1 --- openmc/data/njoy.py | 165 ++++++++++++++++++++--------------------- openmc/data/thermal.py | 94 ++++++++++++----------- 2 files changed, 133 insertions(+), 126 deletions(-) diff --git a/openmc/data/njoy.py b/openmc/data/njoy.py index 0ef77695b5..948bd8bb5b 100644 --- a/openmc/data/njoy.py +++ b/openmc/data/njoy.py @@ -5,95 +5,74 @@ import shutil from subprocess import Popen, PIPE, STDOUT, CalledProcessError import tempfile from pathlib import Path +import warnings from . import endf +import openmc.data -# For a given MAT number, give a name for the ACE table and a list of ZAID -# identifiers. This is based on Appendix C in the ENDF manual. +# For a given material, give a name for the ACE table and a list of ZAID +# identifiers. ThermalTuple = namedtuple('ThermalTuple', ['name', 'zaids', 'nmix']) _THERMAL_DATA = { - 1: ThermalTuple('hh2o', [1001], 1), - 2: ThermalTuple('parah', [1001], 1), - 3: ThermalTuple('orthoh', [1001], 1), - 5: ThermalTuple('hyh2', [1001], 1), - 7: ThermalTuple('hzrh', [1001], 1), - 8: ThermalTuple('hcah2', [1001], 1), - 10: ThermalTuple('hice', [1001], 1), - 11: ThermalTuple('dd2o', [1002], 1), - 12: ThermalTuple('parad', [1002], 1), - 13: ThermalTuple('orthod', [1002], 1), - 14: ThermalTuple('dice', [1002], 1), - 26: ThermalTuple('be', [4009], 1), - 27: ThermalTuple('bebeo', [4009], 1), - 28: ThermalTuple('bebe2c', [4009], 1), - 30: ThermalTuple('graph', [6000, 6012, 6013], 1), - 31: ThermalTuple('grph10', [6000, 6012, 6013], 1), - 32: ThermalTuple('grph30', [6000, 6012, 6013], 1), - 33: ThermalTuple('lch4', [1001], 1), - 34: ThermalTuple('sch4', [1001], 1), - 35: ThermalTuple('sch4p2', [1001], 1), - 37: ThermalTuple('hch2', [1001], 1), - 38: ThermalTuple('mesi00', [1001], 1), - 39: ThermalTuple('lucite', [1001], 1), - 40: ThermalTuple('benz', [1001, 6000, 6012], 2), - 42: ThermalTuple('tol00', [1001], 1), - 43: ThermalTuple('sisic', [14028, 14029, 14030], 1), - 44: ThermalTuple('csic', [6000, 6012, 6013], 1), - 45: ThermalTuple('ouo2', [8016, 8017, 8018], 1), - 46: ThermalTuple('obeo', [8016, 8017, 8018], 1), - 47: ThermalTuple('sio2-a', [8016, 8017, 8018, 14028, 14029, 14030], 3), - 48: ThermalTuple('osap00', [92238], 1), - 49: ThermalTuple('sio2-b', [8016, 8017, 8018, 14028, 14029, 14030], 3), - 50: ThermalTuple('oice', [8016, 8017, 8018], 1), - 51: ThermalTuple('od2o', [8016, 8017, 8018], 1), - 52: ThermalTuple('mg24', [12024], 1), - 53: ThermalTuple('al27', [13027], 1), - 55: ThermalTuple('yyh2', [39089], 1), - 56: ThermalTuple('fe56', [26056], 1), - 58: ThermalTuple('zrzrh', [40000, 40090, 40091, 40092, 40094, 40096], 1), - 59: ThermalTuple('si00', [14028], 1), - 60: ThermalTuple('asap00', [13027], 1), - 71: ThermalTuple('n-un', [7014, 7015], 1), - 72: ThermalTuple('u-un', [92238], 1), - 75: ThermalTuple('uuo2', [8016, 8017, 8018], 1), + 'c_Al27': ThermalTuple('al27', [13027], 1), + 'c_Al_in_Al2O3': ThermalTuple('asap00', [13027], 1), + 'c_Be': ThermalTuple('be', [4009], 1), + 'c_Be_in_BeO': ThermalTuple('bebeo', [4009], 1), + 'c_Be_in_Be2C': ThermalTuple('bebe2c', [4009], 1), + 'c_Be_in_FLiBe': ThermalTuple('beflib', [4009], 1), + 'c_C6H6': ThermalTuple('benz', [1001, 6000, 6012], 2), + 'c_C_in_SiC': ThermalTuple('csic', [6000, 6012, 6013], 1), + 'c_Ca_in_CaH2': ThermalTuple('cacah2', [20040, 20042, 20043, 20044, 20046, 20048], 1), + 'c_D_in_D2O': ThermalTuple('dd2o', [1002], 1), + 'c_D_in_D2O_solid': ThermalTuple('dice', [1002], 1), + 'c_F_in_FLiBe': ThermalTuple('fflibe', [9019], 1), + 'c_Fe56': ThermalTuple('fe56', [26056], 1), + 'c_Graphite': ThermalTuple('graph', [6000, 6012, 6013], 1), + 'c_Graphite_10p': ThermalTuple('grph10', [6000, 6012, 6013], 1), + 'c_Graphite_30p': ThermalTuple('grph30', [6000, 6012, 6013], 1), + 'c_H_in_C5O2H8': ThermalTuple('lucite', [1001], 1), + 'c_H_in_CaH2': ThermalTuple('hcah2', [1001], 1), + 'c_H_in_CH2': ThermalTuple('hch2', [1001], 1), + 'c_H_in_CH4_liquid': ThermalTuple('lch4', [1001], 1), + 'c_H_in_CH4_solid': ThermalTuple('sch4', [1001], 1), + 'c_H_in_CH4_solid_phase_II': ThermalTuple('sch4p2', [1001], 1), + 'c_H_in_H2O': ThermalTuple('hh2o', [1001], 1), + 'c_H_in_H2O_solid': ThermalTuple('hice', [1001], 1), + 'c_H_in_HF': ThermalTuple('hhf', [1001], 1), + 'c_H_in_Mesitylene': ThermalTuple('mesi00', [1001], 1), + 'c_H_in_ParaffinicOil': ThermalTuple('hparaf', [1001], 1), + 'c_H_in_Toluene': ThermalTuple('tol00', [1001], 1), + 'c_H_in_UH3': ThermalTuple('huh3', [1001], 1), + 'c_H_in_YH2': ThermalTuple('hyh2', [1001], 1), + 'c_H_in_ZrH': ThermalTuple('hzrh', [1001], 1), + 'c_H_in_ZrH2': ThermalTuple('hzrh2', [1001], 1), + 'c_H_in_ZrHx': ThermalTuple('hzrhx', [1001], 1), + 'c_Li_in_FLiBe': ThermalTuple('liflib', [3006, 3007], 1), + 'c_Mg24': ThermalTuple('mg24', [12024], 1), + 'c_N_in_UN': ThermalTuple('n-un', [7014, 7015], 1), + 'c_O_in_Al2O3': ThermalTuple('osap00', [92238], 1), + 'c_O_in_BeO': ThermalTuple('obeo', [8016, 8017, 8018], 1), + 'c_O_in_D2O': ThermalTuple('od2o', [8016, 8017, 8018], 1), + 'c_O_in_H2O_solid': ThermalTuple('oice', [8016, 8017, 8018], 1), + 'c_O_in_UO2': ThermalTuple('ouo2', [8016, 8017, 8018], 1), + 'c_ortho_D': ThermalTuple('orthod', [1002], 1), + 'c_ortho_H': ThermalTuple('orthoh', [1001], 1), + 'c_para_D': ThermalTuple('parad', [1002], 1), + 'c_para_H': ThermalTuple('parah', [1001], 1), + 'c_Si28': ThermalTuple('si00', [14028], 1), + 'c_Si_in_SiC': ThermalTuple('sisic', [14028, 14029, 14030], 1), + 'c_SiO2_alpha': ThermalTuple('sio2-a', [8016, 8017, 8018, 14028, 14029, 14030], 3), + 'c_SiO2_beta': ThermalTuple('sio2-b', [8016, 8017, 8018, 14028, 14029, 14030], 3), + 'c_U_in_UN': ThermalTuple('u-un', [92238], 1), + 'c_U_in_UO2': ThermalTuple('uuo2', [8016, 8017, 8018], 1), + 'c_Y_in_YH2': ThermalTuple('yyh2', [39089], 1), + 'c_Zr_in_ZrH': ThermalTuple('zrzrh', [40000, 40090, 40091, 40092, 40094, 40096], 1), + 'c_Zr_in_ZrH2': ThermalTuple('zrzrh2', [40000, 40090, 40091, 40092, 40094, 40096], 1), + 'c_Zr_in_ZrHx': ThermalTuple('zrzrhx', [40000, 40090, 40091, 40092, 40094, 40096], 1), } -def _get_thermal_data(ev, mat): - """Return appropriate ThermalTuple, accounting for bugs.""" - - # JEFF assigns MAT=59 to Ca in CaH2 (which is supposed to be silicon). - if ev.info['library'][0] == 'JEFF': - if ev.material == 59: - if 'CaH2' in ''.join(ev.info['description']): - zaids = [20040, 20042, 20043, 20044, 20046, 20048] - return ThermalTuple('cacah2', zaids, 1) - - # Before ENDF/B-VIII.0, crystalline graphite was MAT=31 - if ev.info['library'] != ('ENDF/B', 8, 0): - if ev.material == 31: - return _THERMAL_DATA[30] - - # ENDF/B incorrectly assigns MAT numbers for UO2 - # - # Material | ENDF Manual | VII.0 | VII.1 | VIII.0 - # ---------|-------------|-------|-------|------- - # O in UO2 | 45 | 75 | 75 | 75 - # U in UO2 | 75 | 76 | 48 | 48 - if ev.info['library'][0] == 'ENDF/B': - if ev.material == 75: - return _THERMAL_DATA[45] - version = ev.info['library'][1:] - if version in ((7, 1), (8, 0)) and ev.material == 48: - return _THERMAL_DATA[75] - if version == (7, 0) and ev.material == 76: - return _THERMAL_DATA[75] - - # If not a problematic material, use the dictionary as is - return _THERMAL_DATA[mat] - - _TEMPLATE_RECONR = """ reconr / %%%%%%%%%%%%%%%%%%% Reconstruct XS for neutrons %%%%%%%%%%%%%%%%%%%%%%% {nendf} {npendf} @@ -445,7 +424,8 @@ def make_ace(filename, temperatures=None, acer=True, xsdir=None, def make_ace_thermal(filename, filename_thermal, temperatures=None, ace='ace', xsdir=None, output_dir=None, error=0.001, - iwt=2, evaluation=None, evaluation_thermal=None, **kwargs): + iwt=2, evaluation=None, evaluation_thermal=None, + table_name=None, zaids=None, nmix=None, **kwargs): """Generate thermal scattering ACE file from ENDF files Parameters @@ -476,6 +456,12 @@ def make_ace_thermal(filename, filename_thermal, temperatures=None, evaluation_thermal : openmc.data.endf.Evaluation, optional If the ENDF thermal scattering sublibrary file contains multiple material evaluations, this argument indicates which evaluation to use. + table_name : str, optional + Name to assign to ACE table + zaids : list of int, optional + ZAIDs that the thermal scattering data applies to + nmix : int, optional + Number of atom types in mixed moderator **kwargs Keyword arguments passed to :func:`openmc.data.njoy.run` @@ -499,10 +485,21 @@ def make_ace_thermal(filename, filename_thermal, temperatures=None, ev_thermal = (evaluation_thermal if evaluation_thermal is not None else endf.Evaluation(filename_thermal)) mat_thermal = ev_thermal.material - zsymam_thermal = ev_thermal.target['zsymam'] + zsymam_thermal = ev_thermal.target['zsymam'].strip() + + # Determine name, isotopes, and number of atom types + if table_name and zaids and nmix: + data = ThermalTuple(table_name, zaids, nmix) + else: + with warnings.catch_warnings(record=True) as w: + proper_name = openmc.data.get_thermal_name(zsymam_thermal) + if w: + raise RuntimeError( + f"Thermal scattering material {zsymam_thermal} not " + "recognized. Please contact OpenMC developers at " + "https://openmc.discourse.group.") + data = _THERMAL_DATA[proper_name] - # Determine name, isotopes based on MAT number - data = _get_thermal_data(ev_thermal, mat_thermal) zaids = ' '.join(str(zaid) for zaid in data.zaids[:3]) # Determine name of library diff --git a/openmc/data/thermal.py b/openmc/data/thermal.py index d0adbc4fe7..b807a9f59f 100644 --- a/openmc/data/thermal.py +++ b/openmc/data/thermal.py @@ -28,52 +28,62 @@ from .thermal_angle_energy import (CoherentElasticAE, IncoherentElasticAE, _THERMAL_NAMES = { - 'c_Al27': ('al', 'al27', 'al-27'), - 'c_Al_in_Sapphire': ('asap00', 'asap'), - 'c_Be': ('be', 'be-metal', 'be-met', 'be00'), + 'c_Al27': ('al', 'al27', 'al-27', '13-al- 27'), + 'c_Al_in_Al2O3': ('asap00', 'asap', 'al(al2o3)'), + 'c_Be': ('be', 'be-metal', 'be-met', 'be00', 'be-metal', 'be metal', '4-be'), 'c_BeO': ('beo',), - 'c_Be_in_BeO': ('bebeo', 'be-beo', 'be-o', 'be/o', 'bbeo00'), + 'c_Be_in_BeO': ('bebeo', 'be-beo', 'be-o', 'be/o', 'bbeo00', 'be(beo)'), 'c_Be_in_Be2C': ('bebe2c',), - 'c_C6H6': ('benz', 'c6h6'), - 'c_C_in_SiC': ('csic', 'c-sic'), - 'c_Ca_in_CaH2': ('cah', 'cah00', 'cacah2'), - 'c_D_in_D2O': ('dd2o', 'd-d2o', 'hwtr', 'hw', 'dhw00'), + 'c_Be_in_FLiBe': ('beflib', 'be(flibe)'), + 'c_C6H6': ('benz', 'c6h6', 'benzine'), + 'c_C_in_SiC': ('csic', 'c-sic', 'c(3c-sic)'), + 'c_Ca_in_CaH2': ('cah', 'cah00', 'cacah2', 'ca(cah2)'), + 'c_D_in_D2O': ('dd2o', 'd-d2o', 'hwtr', 'hw', 'dhw00', 'd(d2o)'), 'c_D_in_D2O_ice': ('dice',), - 'c_Fe56': ('fe', 'fe56', 'fe-56'), - 'c_Graphite': ('graph', 'grph', 'gr', 'gr00'), - 'c_Graphite_10p': ('grph10',), - 'c_Graphite_30p': ('grph30',), - 'c_H_in_CaH2': ('hcah2', 'hca00'), - 'c_H_in_CH2': ('hch2', 'poly', 'pol', 'h-poly', 'pol00'), - 'c_H_in_CH4_liquid': ('lch4', 'lmeth'), - 'c_H_in_CH4_solid': ('sch4', 'smeth'), + 'c_F_in_FLiBe': ('fflibe', 'f(flibe)'), + 'c_Fe56': ('fe', 'fe56', 'fe-56', '26-fe- 56'), + 'c_Graphite': ('graph', 'grph', 'gr', 'gr00', 'graphite'), + 'c_Graphite_10p': ('grph10', '10p graphit'), + 'c_Graphite_30p': ('grph30', '30p graphit'), + 'c_H_in_C5O2H8': ('lucite', 'c5o2h8', 'h-luci', 'h(lucite)'), + 'c_H_in_CaH2': ('hcah2', 'hca00', 'h(cah2)'), + 'c_H_in_CH2': ('hch2', 'poly', 'pol', 'h-poly', 'pol00', 'h(ch2)'), + 'c_H_in_CH4_liquid': ('lch4', 'lmeth', 'l-ch4'), + 'c_H_in_CH4_solid': ('sch4', 'smeth', 's-ch4'), 'c_H_in_CH4_solid_phase_II': ('sch4p2',), - 'c_H_in_H2O': ('hh2o', 'h-h2o', 'lwtr', 'lw', 'lw00'), - 'c_H_in_H2O_solid': ('hice', 'h-ice', 'ice00'), - 'c_H_in_C5O2H8': ('lucite', 'c5o2h8', 'h-luci'), - 'c_H_in_Mesitylene': ('mesi00', 'mesi'), - 'c_H_in_Toluene': ('tol00', 'tol'), - 'c_H_in_YH2': ('hyh2', 'h-yh2'), - 'c_H_in_ZrH': ('hzrh', 'h-zrh', 'h-zr', 'h/zr', 'hzr', 'hzr00'), - 'c_Mg24': ('mg', 'mg24', 'mg00'), - 'c_O_in_Sapphire': ('osap00', 'osap'), - 'c_O_in_BeO': ('obeo', 'o-beo', 'o-be', 'o/be', 'obeo00'), - 'c_O_in_D2O': ('od2o', 'o-d2o', 'ohw00'), - 'c_O_in_H2O_ice': ('oice', 'o-ice'), - 'c_O_in_UO2': ('ouo2', 'o-uo2', 'o2-u', 'o2/u', 'ouo200'), - 'c_N_in_UN': ('n-un',), - 'c_ortho_D': ('orthod', 'orthoD', 'dortho', 'od200', 'ortod'), - 'c_ortho_H': ('orthoh', 'orthoH', 'hortho', 'oh200', 'ortoh'), - 'c_Si28': ('si00', 'sili'), - 'c_Si_in_SiC': ('sisic', 'si-sic'), - 'c_SiO2_alpha': ('sio2', 'sio2a'), - 'c_SiO2_beta': ('sio2b',), - 'c_para_D': ('parad', 'paraD', 'dpara', 'pd200'), - 'c_para_H': ('parah', 'paraH', 'hpara', 'ph200'), - 'c_U_in_UN': ('u-un',), - 'c_U_in_UO2': ('uuo2', 'u-uo2', 'u-o2', 'u/o2', 'uuo200'), - 'c_Y_in_YH2': ('yyh2', 'y-yh2'), - 'c_Zr_in_ZrH': ('zrzrh', 'zr-zrh', 'zr-h', 'zr/h') + 'c_H_in_H2O': ('hh2o', 'h-h2o', 'lwtr', 'lw', 'lw00', 'h(h2o)'), + 'c_H_in_H2O_solid': ('hice', 'h-ice', 'ice00', 'h(ice-ih)', 'h(ice)'), + 'c_H_in_HF': ('hhf', 'h(hf)'), + 'c_H_in_Mesitylene': ('mesi00', 'mesi', 'mesi-phii'), + 'c_H_in_ParaffinicOil': ('hparaf', 'h(paraffin'), + 'c_H_in_Toluene': ('tol00', 'tol', 'tolue-phii'), + 'c_H_in_UH3': ('huh3', 'h(uh3)'), + 'c_H_in_YH2': ('hyh2', 'h-yh2', 'h(yh2)'), + 'c_H_in_ZrH': ('hzrh', 'h-zrh', 'h-zr', 'h/zr', 'hzr', 'hzr00', 'h(zrh)'), + 'c_H_in_ZrH2': ('hzrh2', 'h(zrh2)'), + 'c_H_in_ZrHx': ('hzrhx', 'h(zrhx)'), + 'c_Li_in_FLiBe': ('liflib', 'li(flibe)'), + 'c_Mg24': ('mg', 'mg24', 'mg00', '24-mg'), + 'c_N_in_UN': ('n-un', 'n(un)', 'n(un) l'), + 'c_O_in_Al2O3': ('osap00', 'osap', 'o(al2o3)'), + 'c_O_in_BeO': ('obeo', 'o-beo', 'o-be', 'o/be', 'obeo00', 'o(beo)'), + 'c_O_in_D2O': ('od2o', 'o-d2o', 'ohw00', 'o(d2o)'), + 'c_O_in_H2O_solid': ('oice', 'o-ice', 'o(ice-ih)'), + 'c_O_in_UO2': ('ouo2', 'o-uo2', 'o2-u', 'o2/u', 'ouo200', 'o(uo2)'), + 'c_ortho_D': ('orthod', 'orthoD', 'dortho', 'od200', 'ortod', 'ortho-d'), + 'c_ortho_H': ('orthoh', 'orthoH', 'hortho', 'oh200', 'ortoh', 'ortho-h'), + 'c_para_D': ('parad', 'paraD', 'dpara', 'pd200', 'para-d'), + 'c_para_H': ('parah', 'paraH', 'hpara', 'ph200', 'para-h'), + 'c_Si28': ('si00', 'sili', 'si'), + 'c_Si_in_SiC': ('sisic', 'si-sic', 'si(3c-sic)'), + 'c_SiO2_alpha': ('sio2', 'sio2a', 'sio2alpha'), + 'c_SiO2_beta': ('sio2b', 'sio2beta'), + 'c_U_in_UN': ('u-un', 'u(un)', 'u(un) l'), + 'c_U_in_UO2': ('uuo2', 'u-uo2', 'u-o2', 'u/o2', 'uuo200', 'u(uo2)'), + 'c_Y_in_YH2': ('yyh2', 'y-yh2', 'y(yh2)'), + 'c_Zr_in_ZrH': ('zrzrh', 'zr-zrh', 'zr-h', 'zr/h', 'zr(zrh)'), + 'c_Zr_in_ZrH2': ('zrzrh2', 'zr(zrh2)'), + 'c_Zr_in_ZrHx': ('zrzrhx', 'zr(zrhx)'), } From fa76ae54d155593def8902c6b08712ea4226f773 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 3 Sep 2021 15:25:32 -0500 Subject: [PATCH 3/4] Use nza input on ACER card 8 (for thermal scattering) --- openmc/data/njoy.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openmc/data/njoy.py b/openmc/data/njoy.py index 948bd8bb5b..305edaf4f2 100644 --- a/openmc/data/njoy.py +++ b/openmc/data/njoy.py @@ -149,7 +149,7 @@ acer / %%%%%%%%%%%%%%%%%%%%%%%% Write out in ACE format %%%%%%%%%%%%%%%%%%%%%%%% {nendf} {nthermal_acer_in} 0 {nace} {ndir} 2 0 1 .{ext}/ '{library}: {zsymam_thermal} processed by NJOY'/ -{mat} {temperature} '{data.name}' / +{mat} {temperature} '{data.name}' {nza} / {zaids} / 222 64 {mt_elastic} {elastic_type} {data.nmix} {energy_max} {iwt}/ """ @@ -500,7 +500,8 @@ def make_ace_thermal(filename, filename_thermal, temperatures=None, "https://openmc.discourse.group.") data = _THERMAL_DATA[proper_name] - zaids = ' '.join(str(zaid) for zaid in data.zaids[:3]) + zaids = ' '.join(str(zaid) for zaid in data.zaids) + nza = len(data.zaids) # Determine name of library library = '{}-{}.{}'.format(*ev_thermal.info['library']) From 99cb54bf8e2abe6fff8d878b2e61345186155228 Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Mon, 13 Sep 2021 15:42:15 -0500 Subject: [PATCH 4/4] Comment explaining special case in get_decay_modes --- openmc/data/decay.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openmc/data/decay.py b/openmc/data/decay.py index a4e5405a2b..a0402b47db 100644 --- a/openmc/data/decay.py +++ b/openmc/data/decay.py @@ -58,6 +58,8 @@ def get_decay_modes(value): """ if int(value) == 10: + # The logic below would treat 10.0 as [1, 0] rather than [10] as it + # should, so we handle this case separately return ['unknown'] else: return [_DECAY_MODES[int(x)][0] for x in