mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-27 13:45:36 -04:00
Keeping Python API checks, but writing number of iterations to results file.
This commit is contained in:
parent
143fe64057
commit
5c723bd360
2 changed files with 31 additions and 14 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue