From 283e3ee6aa5db3012a118cd300bf3b6f9388c2ac Mon Sep 17 00:00:00 2001 From: Patrick Shriwise Date: Fri, 3 Feb 2023 22:51:51 -0600 Subject: [PATCH] Adjust the read_meshes function to search only for mesh elements directly below the element passed in --- openmc/mesh.py | 18 ++++++++++++++---- openmc/settings.py | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/openmc/mesh.py b/openmc/mesh.py index a3452b8462..b2114525fc 100644 --- a/openmc/mesh.py +++ b/openmc/mesh.py @@ -1940,12 +1940,22 @@ class UnstructuredMesh(MeshBase): return cls(filename, library, mesh_id, '', length_multiplier) -def read_meshes(tree): - """Reads all mesh nodes under an XML tree +def read_meshes(elem): + """Reads all mesh nodes under a a given XML node + + Parameters + ---------- + elem : xml.etree.ElementTree.Element + XML element + + Returns + ------- + OrderedDict + An ordered dictionary with mesh IDs as keys and openmc.MeshBase + instanaces as values """ out = OrderedDict() - root = tree.getroot() - for mesh_elem in root.iter('mesh'): + for mesh_elem in elem.findall('mesh'): mesh = MeshBase.from_xml_element(mesh_elem) out[mesh.id] = mesh diff --git a/openmc/settings.py b/openmc/settings.py index a219f8aa22..ff35a90cfb 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -1762,5 +1762,5 @@ class Settings: """ tree = ET.parse(path) root = tree.getroot() - meshes = read_meshes(tree) + meshes = read_meshes(root) return cls.from_xml_element(root, meshes)