Skip to content

Commit 7806703

Browse files
Copilotjtrammpaulromano
authored
Fix random ray source region mesh export when using model.export_to_xml() (#3579)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jtramm <1009059+jtramm@users.noreply.github.com> Co-authored-by: Paul Romano <paul.k.romano@gmail.com>
1 parent 91a19cf commit 7806703

33 files changed

Lines changed: 72 additions & 39 deletions

File tree

openmc/settings.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1715,9 +1715,15 @@ def _create_random_ray_subelement(self, root, mesh_memo=None):
17151715
domain_elem = ET.SubElement(mesh_elem, 'domain')
17161716
domain_elem.set('id', str(domain.id))
17171717
domain_elem.set('type', domain.__class__.__name__.lower())
1718-
if mesh_memo is not None and mesh.id not in mesh_memo:
1718+
# See if a <mesh> element already exists -- if not, add it
1719+
path = f"./mesh[@id='{mesh.id}']"
1720+
if root.find(path) is None:
17191721
root.append(mesh.to_xml_element())
1720-
mesh_memo.add(mesh.id)
1722+
if mesh_memo is not None:
1723+
mesh_memo.add(mesh.id)
1724+
elif isinstance(value, bool):
1725+
subelement = ET.SubElement(element, key)
1726+
subelement.text = str(value).lower()
17211727
else:
17221728
subelement = ET.SubElement(element, key)
17231729
subelement.text = str(value)
@@ -2110,7 +2116,7 @@ def _max_tracks_from_xml_element(self, root):
21102116
if text is not None:
21112117
self.max_tracks = int(text)
21122118

2113-
def _random_ray_from_xml_element(self, root):
2119+
def _random_ray_from_xml_element(self, root, meshes=None):
21142120
elem = root.find('random_ray')
21152121
if elem is not None:
21162122
self.random_ray = {}
@@ -2137,7 +2143,11 @@ def _random_ray_from_xml_element(self, root):
21372143
elif child.tag == 'source_region_meshes':
21382144
self.random_ray['source_region_meshes'] = []
21392145
for mesh_elem in child.findall('mesh'):
2140-
mesh = MeshBase.from_xml_element(mesh_elem)
2146+
mesh_id = int(get_text(mesh_elem, 'id'))
2147+
if meshes and mesh_id in meshes:
2148+
mesh = meshes[mesh_id]
2149+
else:
2150+
mesh = MeshBase.from_xml_element(mesh_elem)
21412151
domains = []
21422152
for domain_elem in mesh_elem.findall('domain'):
21432153
domain_id = int(get_text(domain_elem, "id"))
@@ -2339,7 +2349,7 @@ def from_xml_element(cls, elem, meshes=None):
23392349
settings._max_history_splits_from_xml_element(elem)
23402350
settings._max_tracks_from_xml_element(elem)
23412351
settings._max_secondaries_from_xml_element(elem)
2342-
settings._random_ray_from_xml_element(elem)
2352+
settings._random_ray_from_xml_element(elem, meshes)
23432353
settings._use_decay_photons_from_xml_element(elem)
23442354
settings._source_rejection_fraction_from_xml_element(elem)
23452355

tests/regression_tests/random_ray_adjoint_fixed_source/inputs_true.dat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,8 +212,8 @@
212212
<parameters>0.0 0.0 0.0 30.0 30.0 30.0</parameters>
213213
</space>
214214
</source>
215-
<volume_normalized_flux_tallies>True</volume_normalized_flux_tallies>
216-
<adjoint>True</adjoint>
215+
<volume_normalized_flux_tallies>true</volume_normalized_flux_tallies>
216+
<adjoint>true</adjoint>
217217
<volume_estimator>naive</volume_estimator>
218218
</random_ray>
219219
</settings>

tests/regression_tests/random_ray_adjoint_k_eff/inputs_true.dat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@
8585
<parameters>-1.26 -1.26 -1 1.26 1.26 1</parameters>
8686
</space>
8787
</source>
88-
<volume_normalized_flux_tallies>True</volume_normalized_flux_tallies>
89-
<adjoint>True</adjoint>
88+
<volume_normalized_flux_tallies>true</volume_normalized_flux_tallies>
89+
<adjoint>true</adjoint>
9090
</random_ray>
9191
</settings>
9292
<tallies>

tests/regression_tests/random_ray_fixed_source_domain/cell/inputs_true.dat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@
212212
<parameters>0.0 0.0 0.0 30.0 30.0 30.0</parameters>
213213
</space>
214214
</source>
215-
<volume_normalized_flux_tallies>True</volume_normalized_flux_tallies>
215+
<volume_normalized_flux_tallies>true</volume_normalized_flux_tallies>
216216
</random_ray>
217217
</settings>
218218
<tallies>

tests/regression_tests/random_ray_fixed_source_domain/material/inputs_true.dat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@
212212
<parameters>0.0 0.0 0.0 30.0 30.0 30.0</parameters>
213213
</space>
214214
</source>
215-
<volume_normalized_flux_tallies>True</volume_normalized_flux_tallies>
215+
<volume_normalized_flux_tallies>true</volume_normalized_flux_tallies>
216216
</random_ray>
217217
</settings>
218218
<tallies>

tests/regression_tests/random_ray_fixed_source_domain/universe/inputs_true.dat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@
212212
<parameters>0.0 0.0 0.0 30.0 30.0 30.0</parameters>
213213
</space>
214214
</source>
215-
<volume_normalized_flux_tallies>True</volume_normalized_flux_tallies>
215+
<volume_normalized_flux_tallies>true</volume_normalized_flux_tallies>
216216
</random_ray>
217217
</settings>
218218
<tallies>

tests/regression_tests/random_ray_fixed_source_linear/linear/inputs_true.dat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@
212212
<parameters>0.0 0.0 0.0 30.0 30.0 30.0</parameters>
213213
</space>
214214
</source>
215-
<volume_normalized_flux_tallies>True</volume_normalized_flux_tallies>
215+
<volume_normalized_flux_tallies>true</volume_normalized_flux_tallies>
216216
<source_shape>linear</source_shape>
217217
</random_ray>
218218
</settings>

tests/regression_tests/random_ray_fixed_source_linear/linear_xy/inputs_true.dat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@
212212
<parameters>0.0 0.0 0.0 30.0 30.0 30.0</parameters>
213213
</space>
214214
</source>
215-
<volume_normalized_flux_tallies>True</volume_normalized_flux_tallies>
215+
<volume_normalized_flux_tallies>true</volume_normalized_flux_tallies>
216216
<source_shape>linear_xy</source_shape>
217217
</random_ray>
218218
</settings>

tests/regression_tests/random_ray_fixed_source_mesh/flat/inputs_true.dat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@
212212
<parameters>0.0 0.0 0.0 30.0 30.0 30.0</parameters>
213213
</space>
214214
</source>
215-
<volume_normalized_flux_tallies>True</volume_normalized_flux_tallies>
215+
<volume_normalized_flux_tallies>true</volume_normalized_flux_tallies>
216216
<source_region_meshes>
217217
<mesh id="1">
218218
<domain id="1" type="universe"/>

tests/regression_tests/random_ray_fixed_source_mesh/linear/inputs_true.dat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@
212212
<parameters>0.0 0.0 0.0 30.0 30.0 30.0</parameters>
213213
</space>
214214
</source>
215-
<volume_normalized_flux_tallies>True</volume_normalized_flux_tallies>
215+
<volume_normalized_flux_tallies>true</volume_normalized_flux_tallies>
216216
<source_region_meshes>
217217
<mesh id="1">
218218
<domain id="1" type="universe"/>

0 commit comments

Comments
 (0)