Add SI_Integrator, SI_CELI_Integrator classes; remove si_celi

The si_celi depletion function has been removed. The
SI-CELI method can be implemented with
    >>> from openmc.deplete import SI_CELI_Integrator
    >>> SI_CELI_Integrator(op, dt, power, stages).integrate()

The stages parameter is optional, and defaults to 10 to
be consistent with the previous default for si_celi.

The SI_CELI_Integrator inherits from the new abstract base class
SI_Integrator. There are a few differences in how the SI-based
methods perform the integration.

- The initial, t=0.0, i=0, no restart transport solution is scaled
  by the number of stages.
- The SI methods also do not perform a new transport solution at
  each successive iteration [t>0, i>0]. Instead, the reaction
  rates are pulled from the last stage of the previous step.
- There is no final transport solution once all the depletion
  steps have been taken. The final reaction rates are saved as
  those from the last stage of the last depletion step.

The si_celi function has been removed from documentation and testing,
and replaced with the SI_CELI_Integrator.
This commit is contained in:
Andrew Johnson 2019-07-26 12:05:06 -05:00
parent 98957fb473
commit d28546bcd6
No known key found for this signature in database
GPG key ID: 253418E91B7F6FEB
5 changed files with 143 additions and 86 deletions

View file

@ -16,7 +16,6 @@ transport-depletion coupling algorithms <http://hdl.handle.net/1721.1/113721>`_.
:nosignatures:
:template: myfunction.rst
integrator.si_celi
integrator.si_leqi
.. autosummary::
@ -30,6 +29,7 @@ transport-depletion coupling algorithms <http://hdl.handle.net/1721.1/113721>`_.
integrator.CELIIntegrator
integrator.EPC_RK4_Integrator
integrator.LEQIIntegrator
integrator.SI_CELI_Integrator
Each of these functions expects a "transport operator" to be passed. An operator
specific to OpenMC is available using the following class: