From 2b1380519d8c7614fd74aa56cd66f8dac6637c04 Mon Sep 17 00:00:00 2001 From: Ethan Peterson Date: Fri, 20 Dec 2019 15:55:21 -0500 Subject: [PATCH] Adding data_type kwarg to DataLibrary.get_by_material Co-Authored-By: Paul Romano Update tests/unit_tests/test_data_misc.py Co-Authored-By: Paul Romano --- openmc/data/library.py | 7 +++++-- openmc/plotter.py | 8 +++++--- tests/unit_tests/test_data_misc.py | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/openmc/data/library.py b/openmc/data/library.py index 2339ca1c96..3830334d23 100644 --- a/openmc/data/library.py +++ b/openmc/data/library.py @@ -23,13 +23,16 @@ class DataLibrary(EqualityMixin): def __init__(self): self.libraries = [] - def get_by_material(self, name): + def get_by_material(self, name, data_type='neutron'): """Return the library dictionary containing a given material. Parameters ---------- name : str Name of material, e.g. 'Am241' + data_type : str + Name of data type, e.g. 'neutron', 'photon', 'wmp', + or 'thermal' Returns ------- @@ -39,7 +42,7 @@ class DataLibrary(EqualityMixin): """ for library in self.libraries: - if name in library['materials']: + if name in library['materials'] and data_type in library['type']: return library return None diff --git a/openmc/plotter.py b/openmc/plotter.py index af317dfdf3..33f1e4797f 100644 --- a/openmc/plotter.py +++ b/openmc/plotter.py @@ -562,14 +562,16 @@ def _calculate_cexs_elem_mat(this, types, temperature=294., if isinstance(this, openmc.Material): for sab_name in this._sab: sab = openmc.data.ThermalScattering.from_hdf5( - library.get_by_material(sab_name)['path']) + library.get_by_material(sab_name, data_type='thermal')['path']) for nuc in sab.nuclides: - sabs[nuc] = library.get_by_material(sab_name)['path'] + sabs[nuc] = library.get_by_material(sab_name, + data_type='thermal')['path'] else: if sab_name: sab = openmc.data.ThermalScattering.from_hdf5(sab_name) for nuc in sab.nuclides: - sabs[nuc] = library.get_by_material(sab_name)['path'] + sabs[nuc] = library.get_by_material(sab_name, + data_type='thermal')['path'] # Now we can create the data sets to be plotted xs = {} diff --git a/tests/unit_tests/test_data_misc.py b/tests/unit_tests/test_data_misc.py index 2585e9315f..8244ca7f01 100644 --- a/tests/unit_tests/test_data_misc.py +++ b/tests/unit_tests/test_data_misc.py @@ -18,7 +18,7 @@ def test_data_library(tmpdir): assert f['type'] == 'neutron' assert 'U235' in f['materials'] - f = lib.get_by_material('c_H_in_H2O') + f = lib.get_by_material('c_H_in_H2O', data_type='thermal') assert f['type'] == 'thermal' assert 'c_H_in_H2O' in f['materials']