added add_nuclides method

This commit is contained in:
yardasol 2022-07-27 13:15:10 -05:00
parent a4d6de1d7b
commit b3d0f20a00
2 changed files with 41 additions and 1 deletions

View file

@ -403,6 +403,20 @@ class Material(IDManagerMixin):
self._nuclides.append(NuclideTuple(nuclide, percent, percent_type))
def add_nuclides(self, nuclides: dict):
""" Add multiple nuclides to a material
Parameters
----------
nuclides : dict of str to tuple
Dictionary mapping nuclide names to a tuple containing their
atom or weight percent.
"""
for nuclide, (percent, percent_type) in nuclides.items():
self.add_nuclide(nuclide, percent, percent_type)
def remove_nuclide(self, nuclide: str):
"""Remove a nuclide from the material

View file

@ -25,6 +25,32 @@ def test_add_nuclide():
with pytest.raises(ValueError):
m.add_nuclide('H1', 1.0, 'oa')
def test_add_nuclides():
"""Test adding multipe nuclides at once"""
m = openmc.Material()
nuclides = {'H1': (2.0, 'ao'),
'O16': (1.0, 'wo')}
m.add_nuclides(nuclides)
# wt-%
m = openmc.Material()
nuclides = {'H1': (2.0, 'wo'),
'O16': (1.0, 'wo')}
m.add_nuclides(nuclides)
# mixed
m = openmc.Material()
nuclides = {'H1': (2.0, 'ao'),
'O16': (1.0, 'wo')}
m.add_nuclides(nuclides)
with pytest.raises(TypeError):
m.add_nuclides({'H1': ('1.0', 'ao')})
with pytest.raises(TypeError):
m.add_nuclides({1.0: ('H1', 'wo')})
with pytest.raises(ValueError):
m.add_nuclides({'H1': (1.0, 'oa')})
def test_remove_nuclide():
"""Test removing nuclides."""
@ -441,7 +467,7 @@ def test_activity_of_tritium():
m1.add_nuclide("H3", 1)
m1.set_density('g/cm3', 1)
m1.volume = 1
assert pytest.approx(m1.activity) == 3.559778e14
assert pytest.approx(m1.activity) == 3.559778e14
def test_activity_of_metastable():