Remove cecm function for deplete.CECMIntegrator

The cecm function has been removed from the python api.
In order to use the cecm integration scheme,
the following class based approach is now expected:

>>> from openmc.deplete import CECMIntegrator
>>> cecm = CECMIntegrator(operator, timesteps, power)
>>> cecm.integrate()

if the integrator is not needed, this above expression can be
one-lined with

>>> CECMIntegrator(operator, timesteps, power).integrate()

Unit tests have been updated to no longer use the cecm function,
and cecm has been removed from documentation.
The CECMIntegrator has been added to documentation.
This commit is contained in:
Andrew Johnson 2019-07-16 11:04:50 -05:00
parent cd444510cf
commit f432be0c05
No known key found for this signature in database
GPG key ID: 253418E91B7F6FEB
6 changed files with 22 additions and 28 deletions

View file

@ -17,7 +17,6 @@ transport-depletion coupling algorithms <http://hdl.handle.net/1721.1/113721>`_.
:template: myfunction.rst
integrator.predictor
integrator.cecm
integrator.celi
integrator.leqi
integrator.cf4
@ -25,6 +24,13 @@ transport-depletion coupling algorithms <http://hdl.handle.net/1721.1/113721>`_.
integrator.si_celi
integrator.si_leqi
.. autosummary::
:toctree: generated
:nosignatures:
:template: myclassinherit.rst
integrator.CECMIntegrator
Each of these functions expects a "transport operator" to be passed. An operator
specific to OpenMC is available using the following class:

View file

@ -81,8 +81,7 @@ class Integrator(ABC):
"""
def __iter__(self):
for dt, p in zip(self.timesteps, self.power):
yield dt, p
return zip(self.timesteps, self.power)
def __len__(self):
return len(self.timesteps)
@ -109,7 +108,7 @@ class Integrator(ABC):
return 0.0, 0
return self.operator.prev_res[-1].time[-1], len(self.operator.prev_res)
def integrate_all(self):
def integrate(self):
"""Perform the entire depletion process across all steps"""
with self.operator as conc:
t, i_start = self._get_start_data()
@ -145,8 +144,3 @@ class Integrator(ABC):
Results.save(
self.operator, conc_list, results_list, time_list,
power, index, proc_time)
@classmethod
def integrate(cls, operator, timesteps, power=None, power_density=None):
"""High-level interface for depleting with this integrator"""
return cls(operator, timesteps, power, power_density).integrate_all()

View file

@ -58,16 +58,3 @@ class CECMIntegrator(Integrator):
time1, x_end = timed_deplete(self.chain, conc, res_middle.rates, dt)
return time0 + time1, [x_middle, x_end], [res_middle]
def cecm(operator, timesteps, power=None, power_density=None, print_out=False):
# TODO Remove print_out since depletion timings are stored
return CECMIntegrator(
operator, timesteps, power, power_density).integrate_all()
try:
cecm.__doc__ = (
dedent(CECMIntegrator.__doc__) + dedent(Integrator.__init__.__doc__))
except AttributeError:
pass

View file

@ -55,7 +55,7 @@ class Operator(TransportOperator):
Instances of this class can be used to perform depletion using OpenMC as the
transport operator. Normally, a user needn't call methods of this class
directly. Instead, an instance of this class is passed to an integrator
function, such as :func:`openmc.deplete.integrator.cecm`.
class, such as :class:`openmc.deplete.CECMIntegrator`.
Parameters
----------

View file

@ -5,6 +5,7 @@ These tests integrate a simple test problem described in dummy_geometry.py.
from pytest import approx
import openmc.deplete
from openmc.deplete import CECMIntegrator
from tests import dummy_operator
@ -18,7 +19,8 @@ def test_cecm(run_in_tmpdir):
# Perform simulation using the MCNPX/MCNP6 algorithm
dt = [0.75, 0.75]
power = 1.0
openmc.deplete.cecm(op, dt, power, print_out=False)
integrator = CECMIntegrator(op, dt, power)
integrator.integrate()
# Load the files
res = openmc.deplete.ResultsList(op.output_dir / "depletion_results.h5")

View file

@ -6,6 +6,7 @@ problem described in dummy_geometry.py.
from pytest import approx
import openmc.deplete
from openmc.deplete import CECMIntegrator
from tests import dummy_operator
@ -59,7 +60,8 @@ def test_restart_cecm(run_in_tmpdir):
# Perform simulation using the MCNPX/MCNP6 algorithm
dt = [0.75]
power = 1.0
openmc.deplete.cecm(op, dt, power, print_out=False)
cecm = CECMIntegrator(op, dt, power)
cecm.integrate()
# Load the files
prev_res = openmc.deplete.ResultsList(op.output_dir / "depletion_results.h5")
@ -69,7 +71,8 @@ def test_restart_cecm(run_in_tmpdir):
op.output_dir = output_dir
# Perform restarts simulation using the MCNPX/MCNP6 algorithm
openmc.deplete.cecm(op, dt, power, print_out=False)
cecm_restart = CECMIntegrator(op, dt, power)
cecm_restart.integrate()
# Load the files
res = openmc.deplete.ResultsList(op.output_dir / "depletion_results.h5")
@ -109,7 +112,8 @@ def test_restart_predictor_cecm(run_in_tmpdir):
op.output_dir = output_dir
# Perform restarts simulation using the MCNPX/MCNP6 algorithm
openmc.deplete.cecm(op, dt, power, print_out=False)
cecm = CECMIntegrator(op, dt, power)
cecm.integrate()
# Load the files
res = openmc.deplete.ResultsList(op.output_dir / "depletion_results.h5")
@ -139,7 +143,8 @@ def test_restart_cecm_predictor(run_in_tmpdir):
# Perform simulation using the MCNPX/MCNP6 algorithm
dt = [0.75]
power = 1.0
openmc.deplete.cecm(op, dt, power, print_out=False)
cecm = CECMIntegrator(op, dt, power)
cecm.integrate()
# Load the files
prev_res = openmc.deplete.ResultsList(op.output_dir / "depletion_results.h5")