OpenMC/tests/unit_tests/test_deplete_restart.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

85 lines
2.4 KiB
Python
Raw Permalink Normal View History

"""Regression tests for openmc.deplete restart capability.
These tests run in two steps, a first run then a restart run, a simple test
problem described in dummy_geometry.py.
"""
import pytest
import openmc.deplete
from tests import dummy_operator
def test_restart_predictor_cecm(run_in_tmpdir):
"""Test to ensure that schemes with different stages are not compatible"""
op = dummy_operator.DummyOperator()
output_dir = "test_restart_predictor_cecm"
op.output_dir = output_dir
# Perform simulation using the predictor algorithm
dt = [0.75]
power = 1.0
openmc.deplete.PredictorIntegrator(op, dt, power).integrate(write_rates=True)
# Load the files
prev_res = openmc.deplete.Results(op.output_dir / "depletion_results.h5")
# Re-create depletion operator and load previous results
op = dummy_operator.DummyOperator(prev_res)
op.output_dir = output_dir
def test_restart_cecm_predictor(run_in_tmpdir):
"""Integral regression test of integrator algorithm using CE/CM for the
first run then predictor for the restart run."""
op = dummy_operator.DummyOperator()
output_dir = "test_restart_cecm_predictor"
op.output_dir = output_dir
# Perform simulation using the MCNPX/MCNP6 algorithm
dt = [0.75]
power = 1.0
cecm = openmc.deplete.CECMIntegrator(op, dt, power)
cecm.integrate(write_rates=True)
# Load the files
prev_res = openmc.deplete.Results(op.output_dir / "depletion_results.h5")
# Re-create depletion operator and load previous results
op = dummy_operator.DummyOperator(prev_res)
op.output_dir = output_dir
2019-01-09 13:40:58 -05:00
@pytest.mark.parametrize("scheme", dummy_operator.SCHEMES)
def test_restart(run_in_tmpdir, scheme):
# set up the problem
2019-01-09 13:40:58 -05:00
bundle = dummy_operator.SCHEMES[scheme]
2019-01-09 13:40:58 -05:00
operator = dummy_operator.DummyOperator()
2019-01-09 13:40:58 -05:00
# take first step
bundle.solver(operator, [0.75], 1.0).integrate(write_rates=True)
2019-01-09 13:40:58 -05:00
# restart
prev_res = openmc.deplete.Results(
operator.output_dir / "depletion_results.h5")
operator = dummy_operator.DummyOperator(prev_res)
2019-01-09 13:40:58 -05:00
# take second step
bundle.solver(operator, [0.75], 1.0).integrate()
2019-01-09 13:40:58 -05:00
# compare results
2019-01-09 13:40:58 -05:00
results = openmc.deplete.Results(
operator.output_dir / "depletion_results.h5")
2019-01-09 13:40:58 -05:00
_t, y1 = results.get_atoms("1", "1")
_t, y2 = results.get_atoms("1", "2")
2019-01-09 13:40:58 -05:00
assert y1 == pytest.approx(bundle.atoms_1)
assert y2 == pytest.approx(bundle.atoms_2)