mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-28 14:15:42 -04:00
Allow Settings.sourcepoint['mcpl'] to be set
This commit is contained in:
parent
eeab41a19d
commit
47848b79ab
3 changed files with 23 additions and 7 deletions
|
|
@ -732,6 +732,14 @@ attributes/sub-elements:
|
|||
|
||||
*Default*: false
|
||||
|
||||
:mcpl:
|
||||
If this element is set to "true", the source point file containing the
|
||||
source bank will be written as an MCPL_ file name ``source.mcpl`` instead of
|
||||
an HDF5 file. This option is only applicable if the ``<separate>`` element
|
||||
is set to true.
|
||||
|
||||
*Default*: false
|
||||
|
||||
------------------------------
|
||||
``<surf_source_read>`` Element
|
||||
------------------------------
|
||||
|
|
@ -769,13 +777,13 @@ certain surfaces and write out the source bank in a separate file called
|
|||
|
||||
:mcpl:
|
||||
An optional boolean which indicates if the banked particles should be
|
||||
written to a file in the MCPL-format (documented in mcpl_). instead of the
|
||||
native HDF5-based format. If activated the output file name is changed to
|
||||
written to a file in the MCPL_-format instead of the native HDF5-based
|
||||
format. If activated the output file name is changed to
|
||||
``surface_source.mcpl``.
|
||||
|
||||
*Default*: false
|
||||
|
||||
.. _mcpl: https://mctools.github.io/mcpl/mcpl.pdf
|
||||
.. _MCPL: https://mctools.github.io/mcpl/mcpl.pdf
|
||||
|
||||
------------------------------
|
||||
``<survival_biasing>`` Element
|
||||
|
|
|
|||
|
|
@ -156,6 +156,7 @@ class Settings:
|
|||
:separate: bool indicating whether the source should be written as a
|
||||
separate file
|
||||
:write: bool indicating whether or not to write the source
|
||||
:mcpl: bool indicating whether to write the source as an MCPL file
|
||||
statepoint : dict
|
||||
Options for writing state points. Acceptable keys are:
|
||||
|
||||
|
|
@ -620,6 +621,8 @@ class Settings:
|
|||
cv.check_type('sourcepoint write', value, bool)
|
||||
elif key == 'overwrite':
|
||||
cv.check_type('sourcepoint overwrite', value, bool)
|
||||
elif key == 'mcpl':
|
||||
cv.check_type('sourcepoint mcpl', value, bool)
|
||||
else:
|
||||
raise ValueError(f"Unknown key '{key}' encountered when "
|
||||
"setting sourcepoint options.")
|
||||
|
|
@ -1019,6 +1022,11 @@ class Settings:
|
|||
subelement = ET.SubElement(element, "overwrite_latest")
|
||||
subelement.text = str(self._sourcepoint['overwrite']).lower()
|
||||
|
||||
if 'mcpl' in self._sourcepoint:
|
||||
subelement = ET.SubElement(element, "mcpl")
|
||||
subelement.text = str(self._sourcepoint['mcpl']).lower()
|
||||
|
||||
|
||||
def _create_surf_source_read_subelement(self, root):
|
||||
if self._surf_source_read:
|
||||
element = ET.SubElement(root, "surf_source_read")
|
||||
|
|
@ -1319,10 +1327,10 @@ class Settings:
|
|||
def _sourcepoint_from_xml_element(self, root):
|
||||
elem = root.find('source_point')
|
||||
if elem is not None:
|
||||
for key in ('separate', 'write', 'overwrite_latest', 'batches'):
|
||||
for key in ('separate', 'write', 'overwrite_latest', 'batches', 'mcpl'):
|
||||
value = get_text(elem, key)
|
||||
if value is not None:
|
||||
if key in ('separate', 'write'):
|
||||
if key in ('separate', 'write', 'mcpl'):
|
||||
value = value in ('true', '1')
|
||||
elif key == 'overwrite_latest':
|
||||
value = value in ('true', '1')
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ def test_export_to_xml(run_in_tmpdir):
|
|||
s.output = {'summary': True, 'tallies': False, 'path': 'here'}
|
||||
s.verbosity = 7
|
||||
s.sourcepoint = {'batches': [50, 150, 500, 1000], 'separate': True,
|
||||
'write': True, 'overwrite': True}
|
||||
'write': True, 'overwrite': True, 'mcpl': True}
|
||||
s.statepoint = {'batches': [50, 150, 500, 1000]}
|
||||
s.surf_source_read = {'path': 'surface_source_1.h5'}
|
||||
s.surf_source_write = {'surface_ids': [2], 'max_particles': 200}
|
||||
|
|
@ -75,7 +75,7 @@ def test_export_to_xml(run_in_tmpdir):
|
|||
assert s.output == {'summary': True, 'tallies': False, 'path': 'here'}
|
||||
assert s.verbosity == 7
|
||||
assert s.sourcepoint == {'batches': [50, 150, 500, 1000], 'separate': True,
|
||||
'write': True, 'overwrite': True}
|
||||
'write': True, 'overwrite': True, 'mcpl': True}
|
||||
assert s.statepoint == {'batches': [50, 150, 500, 1000]}
|
||||
assert s.surf_source_read == {'path': 'surface_source_1.h5'}
|
||||
assert s.surf_source_write == {'surface_ids': [2], 'max_particles': 200}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue