mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-27 21:55:41 -04:00
Operator->CoupledOperator
- update references in docstrings and docpages - minor adjustments to related docs in deplete module files - retain backwards compatiblity by exporint Operator alias
This commit is contained in:
parent
511464b53b
commit
773757246b
8 changed files with 96 additions and 82 deletions
|
|
@ -47,17 +47,17 @@ Transport-coupled depletion
|
|||
|
||||
This category of operator solves the transport equation to obtain transmutation
|
||||
reaction rates. At present, the :mod:`openmc.deplete` module offers a single
|
||||
transport-coupled operator, :class:`openmc.deplete.Operator` (which uses the
|
||||
OpenMC transport solver), but in principle additional transport-coupled operator
|
||||
classes based on other transport codes could be implemented and no changes to
|
||||
the depletion solver itself would be needed. The
|
||||
:class:`openmc.deplete.Operator` class requires a :class:`~openmc.Model`
|
||||
transport-coupled operator, :class:`openmc.deplete.CoupledOperator` (which uses
|
||||
the OpenMC transport solver), but in principle additional transport-coupled
|
||||
operator classes based on other transport codes could be implemented and no
|
||||
changes to the depletion solver itself would be needed. The
|
||||
:class:`openmc.deplete.CoupledOperator` class requires a :class:`~openmc.Model`
|
||||
instance containing material, geometry, and settings information::
|
||||
|
||||
model = openmc.Model()
|
||||
...
|
||||
|
||||
op = openmc.deplete.Operator(model)
|
||||
op = openmc.deplete.CoupledOperator(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.
|
||||
|
|
@ -86,11 +86,11 @@ using the :attr:`Material.depletable` attribute::
|
|||
mat = openmc.Material()
|
||||
mat.depletable = True
|
||||
|
||||
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::
|
||||
When constructing the :class:`~openmc.deplete.CoupledOperator`, 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(model, normalization_mode='source-rate')
|
||||
op = openmc.deplete.CoupledOperator(model, normalization_mode='source-rate')
|
||||
|
||||
Finally, when creating a depletion integrator, use the ``source_rates`` argument::
|
||||
|
||||
|
|
@ -109,13 +109,14 @@ Energy Deposition
|
|||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
The default energy deposition mode, ``"fission-q"``, instructs the
|
||||
:class:`~openmc.deplete.Operator` to normalize reaction rates using the product
|
||||
of fission reaction rates and fission Q values taken from the depletion chain.
|
||||
This approach does not consider indirect contributions to energy deposition,
|
||||
such as neutron heating and energy from secondary photons. In doing this, the
|
||||
energy deposited during a transport calculation will be lower than expected.
|
||||
This causes the reaction rates to be over-adjusted to hit the user-specific
|
||||
power, or power density, leading to an over-depletion of burnable materials.
|
||||
:class:`~openmc.deplete.CoupledOperator` to normalize reaction rates using the
|
||||
product of fission reaction rates and fission Q values taken from the depletion
|
||||
chain. This approach does not consider indirect contributions to energy
|
||||
deposition, such as neutron heating and energy from secondary photons. In doing
|
||||
this, the energy deposited during a transport calculation will be lower than
|
||||
expected. This causes the reaction rates to be over-adjusted to hit the
|
||||
user-specific power, or power density, leading to an over-depletion of burnable
|
||||
materials.
|
||||
|
||||
There are some remedies. First, the fission Q values can be directly set in a
|
||||
variety of ways. This requires knowing what the total fission energy release
|
||||
|
|
@ -130,10 +131,10 @@ should be, including indirect components. Some examples are provided below::
|
|||
# create a modified chain and write it to a new file
|
||||
chain = openmc.deplete.Chain.from_xml("chain.xml", fission_q)
|
||||
chain.export_to_xml("chain_mod_q.xml")
|
||||
op = openmc.deplete.Operator(model, "chain_mod_q.xml")
|
||||
op = openmc.deplete.CoupledOperator(model, "chain_mod_q.xml")
|
||||
|
||||
# alternatively, pass the modified fission Q directly to the operator
|
||||
op = openmc.deplete.Operator(model, "chain.xml",
|
||||
op = openmc.deplete.CoupledOperator(model, "chain.xml",
|
||||
fission_q=fission_q)
|
||||
|
||||
|
||||
|
|
@ -141,7 +142,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(model, "chain.xml",
|
||||
op = openmc.deplete.CoupledOperator(model, "chain.xml",
|
||||
normalization_mode="energy-deposition")
|
||||
|
||||
These modified heating libraries can be generated by running the latest version
|
||||
|
|
@ -174,7 +175,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(model, chain_file,
|
||||
op = openmc.deplete.CoupledOperator(model, chain_file,
|
||||
diff_burnable_mats=True)
|
||||
|
||||
For our example problem, this would deplete fuel on the outer region of the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue