Merge pull request #2089 from shimwell/adding_remove_element

Adding remove element method to material class
This commit is contained in:
Paul Romano 2022-06-27 22:07:58 -05:00 committed by GitHub
commit cdf710ad37
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 0 deletions

View file

@ -423,6 +423,23 @@ class Material(IDManagerMixin):
if nuclide == nuc.name:
self.nuclides.remove(nuc)
def remove_element(self, element):
"""Remove an element from the material
Parameters
----------
element : str
Element to remove
"""
cv.check_type('element', element, str)
# If the Material contains the element, delete it
for nuc in reversed(self.nuclides):
element_name = re.split(r'\d+', nuc.name)[0]
if element_name == element:
self.nuclides.remove(nuc)
def add_macroscopic(self, macroscopic):
"""Add a macroscopic to the material. This will also set the
density of the material to 1.0, unless it has been otherwise set,

View file

@ -38,6 +38,17 @@ def test_remove_nuclide():
assert m.nuclides[1].percent == 2.0
def test_remove_elements():
"""Test removing elements."""
m = openmc.Material()
for elem, percent in [('Li', 1.0), ('Be', 1.0)]:
m.add_element(elem, percent)
m.remove_element('Li')
assert len(m.nuclides) == 1
assert m.nuclides[0].name == 'Be9'
assert m.nuclides[0].percent == 1.0
def test_elements():
"""Test adding elements."""
m = openmc.Material()