openmc.deplete.abc.SIIntegrator¶

class openmc.deplete.abc.SIIntegrator(operator, timesteps, power=None, power_density=None, source_rates=None, timestep_units='s', n_steps=10, solver='cram48')[source]

Abstract class for the Stochastic Implicit Euler integrators

Does not provide a __call__ method, but scales and resets the number of particles used in initial transport calculation

Parameters: operator (openmc.deplete.TransportOperator) – The operator object to simulate on. timesteps (iterable of float or iterable of tuple) – Array of timesteps. Note that values are not cumulative. The units are specified by the timestep_units argument when timesteps is an iterable of float. Alternatively, units can be specified for each step by passing an iterable of (value, unit) tuples. 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, power_density, or source_rates 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. source_rates (float or iterable of float, optional) – Source rate in [neutron/sec] for each interval in timesteps New in version 0.12.1. timestep_units ({'s', 'min', 'h', 'd', 'MWd/kg'}) – Units for values specified in the timesteps argument. ‘s’ means seconds, ‘min’ means minutes, ‘h’ means hours, and ‘MWd/kg’ indicates that the values are given in burnup (MW-d of energy deposited per kilogram of initial heavy metal). n_steps (int, optional) – Number of stochastic iterations per depletion interval. Must be greater than zero. Default : 10 solver (str or callable, optional) – If a string, must be the name of the solver responsible for solving the Bateman equations. Current options are: cram16 - 16th order IPF CRAM cram48 - 48th order IPF CRAM [default] If a function or other callable, must adhere to the requirements in solver. New in version 0.12. 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 n_steps (int) – Number of stochastic iterations per depletion interval solver (callable) – Function that will solve the Bateman equations $$\frac{\partial}{\partial t}\vec{n} = A_i\vec{n}_i$$ with a step size $$t_i$$. Can be configured using the solver argument. User-supplied functions are expected to have the following signature: solver(A, n0, t) -> n1 where A is a scipy.sparse.csr_matrix making up the depletion matrix n0 is a 1-D numpy.ndarray of initial compositions for a given material in atoms/cm3 t is a float of the time step size in seconds, and n1 is a numpy.ndarray of compositions at the next time step. Expected to be of the same shape as n0 New in version 0.12.
__call__(conc, rates, dt, source_rate, i)

Perform the integration across one time step

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 source_rate (float) – Power in [W] or source rate in [neutron/sec] i (int) – Current depletion step index 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 intermediate transport simulations
__iter__()

Return pair of time step in [s] and source rate in [W] or [neutron/sec]

__len__()

Return integer number of depletion intervals

integrate()[source]

Perform the entire depletion process across all steps