diff --git a/openmc/material.py b/openmc/material.py index 47f39b990d..3c2a98ffd3 100644 --- a/openmc/material.py +++ b/openmc/material.py @@ -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, diff --git a/tests/unit_tests/test_material.py b/tests/unit_tests/test_material.py index c56c350b02..c15a4b9e55 100644 --- a/tests/unit_tests/test_material.py +++ b/tests/unit_tests/test_material.py @@ -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()