diff --git a/tests/regression_tests/volume_calc/results_true.dat b/tests/regression_tests/volume_calc/results_true.dat index a31360abc..800356e35 100644 --- a/tests/regression_tests/volume_calc/results_true.dat +++ b/tests/regression_tests/volume_calc/results_true.dat @@ -1,4 +1,7 @@ Volume calculation 0 +Trigger Type: None +Trigger threshold: None +Iterations: 1 Domain 1: 31.47+/-0.07 cm^3 Domain 2: 2.093+/-0.031 cm^3 Domain 3: 2.049+/-0.031 cm^3 @@ -12,6 +15,9 @@ Domain 3: 2.049+/-0.031 cm^3 6 3 O16 (6.85+/-0.10)e+22 7 3 B10 (6.85+/-0.10)e+18 Volume calculation 1 +Trigger Type: None +Trigger threshold: None +Iterations: 1 Domain 1: 4.14+/-0.04 cm^3 Domain 2: 31.47+/-0.07 cm^3 Material Nuclide Atoms @@ -21,6 +27,9 @@ Domain 2: 31.47+/-0.07 cm^3 3 2 U235 (3.482+/-0.008)e+23 4 2 Mo99 (3.482+/-0.008)e+22 Volume calculation 2 +Trigger Type: None +Trigger threshold: None +Iterations: 1 Domain 0: 35.61+/-0.07 cm^3 Universe Nuclide Atoms 0 0 H1 (2.770+/-0.029)e+23 @@ -29,6 +38,9 @@ Domain 0: 35.61+/-0.07 cm^3 3 0 U235 (3.482+/-0.008)e+23 4 0 Mo99 (3.482+/-0.008)e+22 Volume calculation 3 +Trigger Type: std_dev +Trigger threshold: 0.1 +Iterations: 521 Domain 1: 31.47+/-0.10 cm^3 Domain 2: 2.10+/-0.04 cm^3 Domain 3: 2.11+/-0.04 cm^3 @@ -42,6 +54,9 @@ Domain 3: 2.11+/-0.04 cm^3 6 3 O16 (7.06+/-0.14)e+22 7 3 B10 (7.06+/-0.14)e+18 Volume calculation 4 +Trigger Type: rel_err +Trigger threshold: 0.1 +Iterations: 10 Domain 1: 4.5+/-0.4 cm^3 Domain 2: 30.5+/-0.7 cm^3 Material Nuclide Atoms @@ -51,6 +66,9 @@ Domain 2: 30.5+/-0.7 cm^3 3 2 U235 (3.38+/-0.08)e+23 4 2 Mo99 (3.38+/-0.08)e+22 Volume calculation 5 +Trigger Type: variance +Trigger threshold: 0.05 +Iterations: 105 Domain 1: 31.51+/-0.22 cm^3 Domain 2: 2.13+/-0.10 cm^3 Domain 3: 2.11+/-0.10 cm^3 diff --git a/tests/regression_tests/volume_calc/test.py b/tests/regression_tests/volume_calc/test.py index 96acf59b9..ae4987f1c 100644 --- a/tests/regression_tests/volume_calc/test.py +++ b/tests/regression_tests/volume_calc/test.py @@ -13,13 +13,8 @@ class VolumeTest(PyAPITestHarness): super().__init__(*args, **kwargs) self.exp_std_dev = 1e-01 - self.std_dev_iters = 521 - self.exp_rel_err = 1e-01 - self.rel_err_iters = 10 - self.exp_variance = 5e-02 - self.variance_iters = 105 def _build_inputs(self): # Define materials @@ -85,29 +80,33 @@ class VolumeTest(PyAPITestHarness): # Read volume calculation results volume_calc = openmc.VolumeCalculation.from_hdf5(filename) + outstr += 'Trigger Type: {}\n'.format(volume_calc.trigger_type) + outstr += 'Trigger threshold: {}\n'.format(volume_calc.threshold) + outstr += 'Iterations: {}\n'.format(volume_calc.iterations) + if i == 3: assert(volume_calc.trigger_type == 'std_dev') assert(volume_calc.threshold == self.exp_std_dev) - assert(volume_calc.iterations == self.std_dev_iters) - for vol in volume_calc.volumes.values(): - assert(vol.std_dev <= self.exp_std_dev) elif i == 4: assert(volume_calc.trigger_type == 'rel_err') assert(volume_calc.threshold == self.exp_rel_err) - assert(volume_calc.iterations == self.rel_err_iters) - for vol in volume_calc.volumes.values(): - assert(vol.std_dev/vol.nominal_value <= self.exp_rel_err) elif i == 5: assert(volume_calc.trigger_type == 'variance') assert(volume_calc.threshold == self.exp_variance) - assert(volume_calc.iterations == self.variance_iters) - for vol in volume_calc.volumes.values(): - assert(vol.std_dev * vol.std_dev <= self.exp_variance) else: assert(volume_calc.trigger_type == None) assert(volume_calc.threshold == None) assert(volume_calc.iterations == 1) + # if a trigger is applied, make sure the calculation satisfies the trigger + for vol in volume_calc.volumes.values(): + if volume_calc.trigger_type == 'std_dev': + assert(vol.std_dev <= self.exp_std_dev) + if volume_calc.trigger_type == 'rel_err': + assert(vol.std_dev/vol.nominal_value <= self.exp_rel_err) + if volume_calc.trigger_type == 'variance': + assert(vol.std_dev * vol.std_dev <= self.exp_variance) + # Write cell volumes and total # of atoms for each nuclide for uid, volume in sorted(volume_calc.volumes.items()): outstr += 'Domain {}: {} cm^3\n'.format(uid, volume)