diff --git a/docs/source/pythonapi/deplete.rst b/docs/source/pythonapi/deplete.rst index 532e06655..32f953ed4 100644 --- a/docs/source/pythonapi/deplete.rst +++ b/docs/source/pythonapi/deplete.rst @@ -17,7 +17,6 @@ transport-depletion coupling algorithms `_. :template: myfunction.rst integrator.predictor - integrator.cecm integrator.celi integrator.leqi integrator.cf4 @@ -25,6 +24,13 @@ transport-depletion coupling algorithms `_. 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: diff --git a/openmc/deplete/integrator/abc.py b/openmc/deplete/integrator/abc.py index d6f318fa4..51877e5e6 100644 --- a/openmc/deplete/integrator/abc.py +++ b/openmc/deplete/integrator/abc.py @@ -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() diff --git a/openmc/deplete/integrator/cecm.py b/openmc/deplete/integrator/cecm.py index 031e4ce7b..1bf6e5809 100644 --- a/openmc/deplete/integrator/cecm.py +++ b/openmc/deplete/integrator/cecm.py @@ -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 diff --git a/openmc/deplete/operator.py b/openmc/deplete/operator.py index 21c96b047..a38c4e501 100644 --- a/openmc/deplete/operator.py +++ b/openmc/deplete/operator.py @@ -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 ---------- diff --git a/tests/unit_tests/test_deplete_cecm.py b/tests/unit_tests/test_deplete_cecm.py index dd8b769fe..8ad1ec95e 100644 --- a/tests/unit_tests/test_deplete_cecm.py +++ b/tests/unit_tests/test_deplete_cecm.py @@ -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") diff --git a/tests/unit_tests/test_deplete_restart.py b/tests/unit_tests/test_deplete_restart.py index ec62064a4..97f0a8b70 100644 --- a/tests/unit_tests/test_deplete_restart.py +++ b/tests/unit_tests/test_deplete_restart.py @@ -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")