Added references to the new class in the docs

This commit is contained in:
yardasol 2022-07-07 16:22:30 -05:00
parent ff044e7b13
commit 3e5f47b0be
2 changed files with 48 additions and 13 deletions

View file

@ -40,18 +40,18 @@ transport-depletion coupling algorithms <http://hdl.handle.net/1721.1/113721>`_.
SICELIIntegrator
SILEQIIntegrator
Each of these classes expects a "transport operator" to be passed. An operator
specific to OpenMC is available using the following class:
Each of these classes expects a "transport operator" to be passed.
.. autosummary::
:toctree: generated
:nosignatures:
:template: mycallable.rst
Operator
FluxDepletionOperator
The :class:`Operator` must also have some knowledge of how nuclides transmute
and decay. This is handled by the :class:`Chain`.
The :class:`Operator` and :class:`FluxDepletionOperator` classes must also have
some knowledge of how nuclides transmute and decay. This is handled by the
:class:`Chain`.
Minimal Example
---------------

View file

@ -19,14 +19,13 @@ transmutation equations and the method used for advancing time. At present, the
:class:`openmc.deplete.Operator` (which uses the OpenMC transport solver), but
in principle additional operator classes based on other transport codes could be
implemented and no changes to the depletion solver itself would be needed. The
operator class requires a :class:`openmc.Geometry` instance and a
:class:`openmc.Settings` instance::
operator class requires a :class:`openmc.model.Model` instance containing
material, geometry, and settings information::
geom = openmc.Geometry()
settings = openmc.Settings()
model = openmc.model.Model()
...
op = openmc.deplete.Operator(geom, settings)
op = openmc.deplete.Operator(model)
Any material that contains a fissionable nuclide is depleted by default, but
this can behavior can be changed with the :attr:`Material.depletable` attribute.
@ -81,7 +80,7 @@ When constructing the :class:`~openmc.deplete.Operator`, you should indicate
that normalization of tally results will be done based on the source rate rather
than a power or power density::
op = openmc.deplete.Operator(geometry, settings, normalization_mode='source-rate')
op = openmc.deplete.Operator(model, normalization_mode='source-rate')
Finally, when creating a depletion integrator, use the ``source_rates`` argument::
@ -127,7 +126,7 @@ A more complete way to model the energy deposition is to use the modified
heating reactions described in :ref:`methods_heating`. These values can be used
to normalize reaction rates instead of using the fission reaction rates with::
op = openmc.deplete.Operator(geometry, settings, "chain.xml",
op = openmc.deplete.Operator(model, "chain.xml",
normalization_mode="energy-deposition")
These modified heating libraries can be generated by running the latest version
@ -160,7 +159,7 @@ the next transport step.
This can be countered by instructing the operator to treat repeated instances
of the same material as a unique material definition with::
op = openmc.deplete.Operator(geometry, settings, chain_file,
op = openmc.deplete.Operator(model, chain_file,
diff_burnable_mats=True)
For our example problem, this would deplete fuel on the outer region of the
@ -177,3 +176,39 @@ across all material instances.
This will increase the total memory usage and run time due to an increased
number of tallies and material definitions.
Transport-independent depletion
-------------------------------
.. note::
This is a brand-new feature and is under heavy development. API changes are
possible and likely in the near future.
OpenMC also supports transport-independent depletion calculations using the
:class:`FluxDepletionOperator` class. Rather than taking a
:class:`openmc.model.Model` object, this class accepts a volume,
a dictionary of nuclide concentrations, a flux spectra, and one-group
microscopic cross sections as a pandas dataframe. The class includes
helper functions to constructe the dataframe from a csv file or from
data arrays::
...
micro_xs = FluxDepletionOperator.create_micro_xs_from_csv(micro_xs_path)
nuclides = {'U234':8.92e18,
'U235':9.98e20,
'U238':2.22e22,
'U236':4.57e18,
'O16':4.64e22,
'O17':1.76e19}
volume = 0.5
flux = 1.16e15
op = FluxDepletionOperator(volume, nuclides, micro_xs, flux. chain_file)
A user can then define an integrator class as they would for a coupled
transport-depletion calculation and follow the steps from there.
present in the depletion chain.
.. note:: Ideally, one-group cross section data should be available for every reaction
in the depletion chain.