mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-26 05:05:30 -04:00
84 lines
2.4 KiB
Python
84 lines
2.4 KiB
Python
"""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
|
|
|
|
|
|
@pytest.mark.parametrize("scheme", dummy_operator.SCHEMES)
|
|
def test_restart(run_in_tmpdir, scheme):
|
|
# set up the problem
|
|
|
|
bundle = dummy_operator.SCHEMES[scheme]
|
|
|
|
operator = dummy_operator.DummyOperator()
|
|
|
|
# take first step
|
|
bundle.solver(operator, [0.75], 1.0).integrate(write_rates=True)
|
|
|
|
# restart
|
|
prev_res = openmc.deplete.Results(
|
|
operator.output_dir / "depletion_results.h5")
|
|
operator = dummy_operator.DummyOperator(prev_res)
|
|
|
|
# take second step
|
|
bundle.solver(operator, [0.75], 1.0).integrate()
|
|
|
|
# compare results
|
|
|
|
results = openmc.deplete.Results(
|
|
operator.output_dir / "depletion_results.h5")
|
|
|
|
_t, y1 = results.get_atoms("1", "1")
|
|
_t, y2 = results.get_atoms("1", "2")
|
|
|
|
assert y1 == pytest.approx(bundle.atoms_1)
|
|
assert y2 == pytest.approx(bundle.atoms_2)
|