mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-27 13:45:36 -04:00
Updating tests.
This commit is contained in:
parent
884a083a50
commit
17ebd34b45
3 changed files with 95 additions and 6 deletions
|
|
@ -54,6 +54,22 @@
|
|||
<samples>100</samples>
|
||||
<lower_left>-1.0 -1.0 -6.0</lower_left>
|
||||
<upper_right>1.0 1.0 6.0</upper_right>
|
||||
<threshold threshold="0.0001" type="std_dev" />
|
||||
<threshold threshold="0.1" type="std_dev" />
|
||||
</volume_calc>
|
||||
<volume_calc>
|
||||
<domain_type>material</domain_type>
|
||||
<domain_ids>1 2</domain_ids>
|
||||
<samples>100</samples>
|
||||
<lower_left>-1.0 -1.0 -6.0</lower_left>
|
||||
<upper_right>1.0 1.0 6.0</upper_right>
|
||||
<threshold threshold="0.1" type="rel_err" />
|
||||
</volume_calc>
|
||||
<volume_calc>
|
||||
<domain_type>cell</domain_type>
|
||||
<domain_ids>1 2 3</domain_ids>
|
||||
<samples>100</samples>
|
||||
<lower_left>-1.0 -1.0 -6.0</lower_left>
|
||||
<upper_right>1.0 1.0 6.0</upper_right>
|
||||
<threshold threshold="0.05" type="variance" />
|
||||
</volume_calc>
|
||||
</settings>
|
||||
|
|
|
|||
|
|
@ -28,3 +28,38 @@ Domain 0: 35.61+/-0.07 cm^3
|
|||
2 0 B10 (1.385+/-0.014)e+19
|
||||
3 0 U235 (3.482+/-0.008)e+23
|
||||
4 0 Mo99 (3.482+/-0.008)e+22
|
||||
Volume calculation 3
|
||||
Domain 1: 31.47+/-0.10 cm^3
|
||||
Domain 2: 2.10+/-0.04 cm^3
|
||||
Domain 3: 2.11+/-0.04 cm^3
|
||||
Cell Nuclide Atoms
|
||||
0 1 U235 (3.481+/-0.011)e+23
|
||||
1 1 Mo99 (3.481+/-0.011)e+22
|
||||
2 2 H1 (1.403+/-0.029)e+23
|
||||
3 2 O16 (7.01+/-0.14)e+22
|
||||
4 2 B10 (7.01+/-0.14)e+18
|
||||
5 3 H1 (1.412+/-0.029)e+23
|
||||
6 3 O16 (7.06+/-0.14)e+22
|
||||
7 3 B10 (7.06+/-0.14)e+18
|
||||
Volume calculation 4
|
||||
Domain 1: 4.5+/-0.4 cm^3
|
||||
Domain 2: 30.5+/-0.7 cm^3
|
||||
Material Nuclide Atoms
|
||||
0 1 H1 (3.02+/-0.30)e+23
|
||||
1 1 O16 (1.51+/-0.15)e+23
|
||||
2 1 B10 (1.51+/-0.15)e+19
|
||||
3 2 U235 (3.38+/-0.08)e+23
|
||||
4 2 Mo99 (3.38+/-0.08)e+22
|
||||
Volume calculation 5
|
||||
Domain 1: 31.51+/-0.22 cm^3
|
||||
Domain 2: 2.13+/-0.10 cm^3
|
||||
Domain 3: 2.11+/-0.10 cm^3
|
||||
Cell Nuclide Atoms
|
||||
0 1 U235 (3.486+/-0.025)e+23
|
||||
1 1 Mo99 (3.486+/-0.025)e+22
|
||||
2 2 H1 (1.42+/-0.06)e+23
|
||||
3 2 O16 (7.11+/-0.32)e+22
|
||||
4 2 B10 (7.11+/-0.32)e+18
|
||||
5 3 H1 (1.41+/-0.06)e+23
|
||||
6 3 O16 (7.05+/-0.32)e+22
|
||||
7 3 B10 (7.05+/-0.32)e+18
|
||||
|
|
|
|||
|
|
@ -8,6 +8,19 @@ from tests.testing_harness import PyAPITestHarness
|
|||
|
||||
|
||||
class VolumeTest(PyAPITestHarness):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
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
|
||||
water = openmc.Material(1)
|
||||
|
|
@ -46,10 +59,17 @@ class VolumeTest(PyAPITestHarness):
|
|||
openmc.VolumeCalculation(list(root.cells.values()), 100000),
|
||||
openmc.VolumeCalculation([water, fuel], 100000, ll, ur),
|
||||
openmc.VolumeCalculation([root], 100000, ll, ur),
|
||||
openmc.VolumeCalculation(list(root.cells.values()), 100),
|
||||
openmc.VolumeCalculation([water, fuel], 100, ll, ur),
|
||||
openmc.VolumeCalculation(list(root.cells.values()), 100)
|
||||
]
|
||||
|
||||
vol_calcs[-1].set_trigger(1e-04, 'std_dev')
|
||||
|
||||
vol_calcs[3].set_trigger(self.exp_std_dev, 'std_dev')
|
||||
|
||||
vol_calcs[4].set_trigger(self.exp_rel_err, 'rel_err')
|
||||
|
||||
vol_calcs[5].set_trigger(self.exp_variance, 'variance')
|
||||
|
||||
# Define settings
|
||||
settings = openmc.Settings()
|
||||
|
|
@ -65,10 +85,28 @@ class VolumeTest(PyAPITestHarness):
|
|||
# Read volume calculation results
|
||||
volume_calc = openmc.VolumeCalculation.from_hdf5(filename)
|
||||
|
||||
if volume_calc.samples == 100:
|
||||
if i == 3:
|
||||
assert(volume_calc.trigger_type == 'std_dev')
|
||||
assert(volume_calc.threshold == 1e-04)
|
||||
|
||||
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)
|
||||
|
||||
# Write cell volumes and total # of atoms for each nuclide
|
||||
for uid, volume in sorted(volume_calc.volumes.items()):
|
||||
|
|
@ -82,4 +120,4 @@ class VolumeTest(PyAPITestHarness):
|
|||
|
||||
def test_volume_calc():
|
||||
harness = VolumeTest('')
|
||||
harness.main()
|
||||
harness.main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue