From f2bc95afa5f59129af8a9e8e446d4f7c309e7f5f Mon Sep 17 00:00:00 2001 From: alex-lyons Date: Thu, 19 Mar 2020 17:50:45 +0000 Subject: [PATCH] Reduce no of batches for trigger from ~47 to ~13 to try to avoid test failures due to numerical differences in platform libraries --- openmc/settings.py | 8 +++----- .../trigger_statepoint_restart/inputs_true.dat | 2 +- .../trigger_statepoint_restart/results_true.dat | 6 +++--- tests/regression_tests/trigger_statepoint_restart/test.py | 6 +++++- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/openmc/settings.py b/openmc/settings.py index 3f1cbe2c3..8ea110be1 100644 --- a/openmc/settings.py +++ b/openmc/settings.py @@ -813,10 +813,9 @@ class Settings: def _create_keff_trigger_subelement(self, root): if self._keff_trigger is not None: element = ET.SubElement(root, "keff_trigger") - - for key in self._keff_trigger: + for key, value in sorted(self._keff_trigger.items()): subelement = ET.SubElement(element, key) - subelement.text = str(self._keff_trigger[key]).lower() + subelement.text = str(value).lower() def _create_energy_mode_subelement(self, root): if self._energy_mode is not None: @@ -839,8 +838,7 @@ class Settings: def _create_output_subelement(self, root): if self._output is not None: element = ET.SubElement(root, "output") - - for key, value in self._output.items(): + for key, value in sorted(self._output.items()): subelement = ET.SubElement(element, key) if key in ('summary', 'tallies'): subelement.text = str(value).lower() diff --git a/tests/regression_tests/trigger_statepoint_restart/inputs_true.dat b/tests/regression_tests/trigger_statepoint_restart/inputs_true.dat index 26890f9f8..51ed9ee61 100644 --- a/tests/regression_tests/trigger_statepoint_restart/inputs_true.dat +++ b/tests/regression_tests/trigger_statepoint_restart/inputs_true.dat @@ -17,8 +17,8 @@ 10 5 + 0.004 std_dev - 0.002 true diff --git a/tests/regression_tests/trigger_statepoint_restart/results_true.dat b/tests/regression_tests/trigger_statepoint_restart/results_true.dat index dc5ed9831..1fdfb6444 100644 --- a/tests/regression_tests/trigger_statepoint_restart/results_true.dat +++ b/tests/regression_tests/trigger_statepoint_restart/results_true.dat @@ -1,5 +1,5 @@ k-combined: -3.040704E-01 1.976825E-03 +2.916922E-01 3.293799E-03 tally 1: -3.389935E+02 -2.743454E+03 +6.184423E+01 +4.789617E+02 diff --git a/tests/regression_tests/trigger_statepoint_restart/test.py b/tests/regression_tests/trigger_statepoint_restart/test.py index 67ba59807..ba99c94ce 100644 --- a/tests/regression_tests/trigger_statepoint_restart/test.py +++ b/tests/regression_tests/trigger_statepoint_restart/test.py @@ -28,7 +28,9 @@ def model(): settings.batches = 10 settings.inactive = 5 settings.particles = 200 - settings.keff_trigger = {'type': 'std_dev', 'threshold': 0.002} + # Choose a sufficiently low threshold to trigger after more than 10 batches. + # 0.004 seems to take 13 batches. + settings.keff_trigger = {'type': 'std_dev', 'threshold': 0.004} settings.trigger_max_batches = 1000 settings.trigger_batch_interval = 1 settings.trigger_active = True @@ -85,11 +87,13 @@ class TriggerStatepointRestartTestHarness(PyAPITestHarness): # First non-restart run spfile = self._model.run(**args) sp_batchno_1 = 0 + print('Last sp file: %s' % spfile) assert spfile with openmc.StatePoint(spfile) as sp: sp_batchno_1 = sp.current_batch k_combined_1 = sp.k_combined assert sp_batchno_1 > 10 + print('Last batch no = %d' % sp_batchno_1) self._write_inputs(self._get_inputs()) self._compare_inputs() self._test_output_created()