mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-21 14:35:27 -04:00
42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
import openmc
|
|
import pytest
|
|
|
|
|
|
@pytest.fixture
|
|
def th232_model():
|
|
# URR boundaries for Th232
|
|
e_min, e_max = 4000.0, 100000.0
|
|
|
|
model = openmc.model.Model()
|
|
th232 = openmc.Material()
|
|
th232.add_nuclide('Th232', 1.0)
|
|
|
|
surf = openmc.Sphere(r=100.0, boundary_type='reflective')
|
|
cell = openmc.Cell(fill=th232, region=-surf)
|
|
model.geometry = openmc.Geometry([cell])
|
|
|
|
model.settings.particles = 100
|
|
model.settings.batches = 10
|
|
model.settings.run_mode = 'fixed source'
|
|
energies = openmc.stats.Uniform(e_min, e_max)
|
|
model.settings.source = openmc.IndependentSource(energy=energies)
|
|
|
|
tally = openmc.Tally(name='rates')
|
|
tally.filters = [openmc.EnergyFilter([e_min, e_max])]
|
|
tally.scores = ['(n,gamma)', 'absorption', 'fission']
|
|
model.tallies.append(tally)
|
|
return model
|
|
|
|
|
|
def test_urr_capture(run_in_tmpdir, th232_model):
|
|
# Export and run model
|
|
th232_model.export_to_xml()
|
|
openmc.run()
|
|
|
|
# Get reaction rates from tally
|
|
with openmc.StatePoint('statepoint.10.h5') as sp:
|
|
t = sp.get_tally(name='rates')
|
|
ngamma, absorption, fission = t.mean.flatten()
|
|
|
|
# In URR, the (n,gamma) rate should be equal to absorption - fission
|
|
assert ngamma == pytest.approx(absorption - fission)
|