mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-28 06:05:58 -04:00
Added references to the new class in the docs
This commit is contained in:
parent
ff044e7b13
commit
3e5f47b0be
2 changed files with 48 additions and 13 deletions
|
|
@ -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
|
||||
---------------
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue