mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-28 06:05:58 -04:00
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:
parent
cd444510cf
commit
f432be0c05
6 changed files with 22 additions and 28 deletions
|
|
@ -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:
|
||||
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
----------
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue