mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-28 22:26:08 -04:00
Adding tests for tally triggers.
This commit is contained in:
parent
e01f0ea944
commit
9615b9f5da
1 changed files with 75 additions and 0 deletions
75
tests/unit_tests/test_triggers.py
Normal file
75
tests/unit_tests/test_triggers.py
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
|
||||
import openmc
|
||||
|
||||
def test_tally_trigger(run_in_tmpdir):
|
||||
pincell = openmc.examples.pwr_pin_cell()
|
||||
|
||||
# create a tally filter on the materials
|
||||
mat_filter = openmc.MaterialFilter(pincell.materials)
|
||||
|
||||
# create a tally with triggers applied
|
||||
tally = openmc.Tally()
|
||||
tally.filters = [mat_filter]
|
||||
tally.scores = ['scatter']
|
||||
|
||||
trigger = openmc.Trigger('rel_err', 0.05)
|
||||
trigger.scores = ['scatter']
|
||||
|
||||
tally.triggers = [trigger]
|
||||
|
||||
pincell.tallies = [tally]
|
||||
|
||||
pincell.settings.trigger_active = True
|
||||
pincell.settings.trigger_max_batches = 100
|
||||
pincell.settings.trigger_batch_interval = 5
|
||||
|
||||
sp_file = pincell.run()
|
||||
with openmc.StatePoint(sp_file) as sp:
|
||||
expected_realizations = sp.n_realizations
|
||||
|
||||
# adding other scores to the tally should not change the
|
||||
# number of batches required to satisfy the trigger
|
||||
tally.scores = ['total', 'absorption', 'scatter']
|
||||
|
||||
sp_file = pincell.run()
|
||||
|
||||
with openmc.StatePoint(sp_file) as sp:
|
||||
realizations = sp.n_realizations
|
||||
|
||||
assert realizations == expected_realizations
|
||||
|
||||
|
||||
def test_tally_trigger_null_score(run_in_tmpdir):
|
||||
pincell = openmc.examples.pwr_pin_cell()
|
||||
|
||||
# create a tally filter on the materials
|
||||
mat_filter = openmc.MaterialFilter(pincell.materials)
|
||||
|
||||
# apply a tally with a score that be tallied in this model
|
||||
tally = openmc.Tally()
|
||||
tally.filters = [mat_filter]
|
||||
tally.scores = ['pair-production']
|
||||
|
||||
trigger = openmc.Trigger('rel_err', 0.05)
|
||||
trigger.scores = ['pair-production']
|
||||
|
||||
tally.triggers = [trigger]
|
||||
|
||||
pincell.tallies = [tally]
|
||||
|
||||
pincell.settings.trigger_active = True
|
||||
pincell.settings.trigger_max_batches = 50
|
||||
pincell.settings.trigger_batch_interval = 5
|
||||
|
||||
sp_file = pincell.run()
|
||||
|
||||
with openmc.StatePoint(sp_file) as sp:
|
||||
# verify that the tally mean is zero
|
||||
tally_out = sp.get_tally(id=tally.id)
|
||||
assert all(tally_out.mean == 0.0)
|
||||
|
||||
# we expect that this simulation will run
|
||||
# up to the max allowed batches
|
||||
total_batches = sp.n_realizations + sp.n_inactive
|
||||
assert total_batches == pincell.settings.trigger_max_batches
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue