openmc.deplete.CECMIntegrator¶
-
class
openmc.deplete.
CECMIntegrator
(operator, timesteps, power=None, power_density=None)[source]¶ Deplete using the CE/CM algorithm.
Implements the second order CE/CM predictor-corrector algorithm.
“CE/CM” stands for constant extrapolation on predictor and constant midpoint on corrector. This algorithm is mathematically defined as:
\[\begin{aligned} y' &= A(y, t) y(t) \\ A_p &= A(y_n, t_n) \\ y_m &= \text{expm}(A_p h/2) y_n \\ A_c &= A(y_m, t_n + h/2) \\ y_{n+1} &= \text{expm}(A_c h) y_n \end{aligned} \]Parameters: - operator (openmc.deplete.TransportOperator) – Operator to perform transport simulations
- timesteps (iterable of float) – Array of timesteps in units of [s]. Note that values are not cumulative.
- power (float or iterable of float, optional) – Power of the reactor in [W]. A single value indicates that
the power is constant over all timesteps. An iterable
indicates potentially different power levels for each timestep.
For a 2D problem, the power can be given in [W/cm] as long
as the “volume” assigned to a depletion material is actually
an area in [cm^2]. Either
power
orpower_density
must be specified. - power_density (float or iterable of float, optional) – Power density of the reactor in [W/gHM]. It is multiplied by
initial heavy metal inventory to get total power if
power
is not speficied.
Variables: - operator (openmc.deplete.TransportOperator) – Operator to perform transport simulations
- chain (openmc.deplete.Chain) – Depletion chain
- timesteps (iterable of float) – Size of each depletion interval in [s]
- power (iterable of float) – Power of the reactor in [W] for each interval in
timesteps
-
__call__
(conc, rates, dt, power, _i=None)[source]¶ Integrate using CE/CM
Parameters: - conc (numpy.ndarray) – Initial concentrations for all nuclides in [atom]
- rates (openmc.deplete.ReactionRates) – Reaction rates from operator
- dt (float) – Time in [s] for the entire depletion interval
- power (float) – Power of the system [W]
- _i (int, optional) – Current iteration count. Not used
Returns: - proc_time (float) – Time spent in CRAM routines for all materials in [s]
- conc_list (list of numpy.ndarray) – Concentrations at each of the intermediate points with the final concentration as the last element
- op_results (list of openmc.deplete.OperatorResult) – Eigenvalue and reaction rates from transport simulations
-
__iter__
()¶ Return pairs of time steps in [s] and powers in [W]
-
__len__
()¶ Return integer number of depletion intervals
-
integrate
()¶ Perform the entire depletion process across all steps