mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-27 21:55:41 -04:00
cleanup awkward sentences
This commit is contained in:
parent
37cfd20498
commit
8cdce03828
1 changed files with 49 additions and 47 deletions
|
|
@ -203,21 +203,25 @@ Transport-independent depletion
|
|||
verified. API changes and feature additions are possible and likely in
|
||||
the near future.
|
||||
|
||||
This category of operator uses pre-calculated one-group microscopic cross
|
||||
sections to obtain transmutation reaction rates. OpenMC provides the
|
||||
:class:`~openmc.deplete.IndependentOperator` for this method of calculation.
|
||||
While the one-group microscopic cross sections can be calculated using a
|
||||
transport solver, :class:`~openmc.deplete.IndependentOperator` is not directly
|
||||
coupled to any transport solver. The
|
||||
:class:`~openmc.deplete.IndependentOperator` class requires a
|
||||
:class:`openmc.Materials` object, a :class:`~openmc.deplete.MicroXS` object,
|
||||
and a path to a depletion chain file::
|
||||
This category of operator uses one-group microscopic cross sections to obtain
|
||||
transmutation reaction rates. The cross sections are pre-calculated, so there is
|
||||
no need for direct coupling between a transport-independent operator and a
|
||||
transport solver. The :mod:`openmc.deplete` module offers a single
|
||||
transport-independent operator, :class:`~openmc.deplete.IndependentOperator`,
|
||||
and only one operator is needed since, in theory, any transport code could
|
||||
calcuate the one-group microscopic cross sections.
|
||||
|
||||
The :class:`~openmc.deplete.IndependentOperator` class has two constructors.
|
||||
The default constructor requires a :class:`openmc.Materials` instance, a
|
||||
:class:`~openmc.deplete.MicroXS` instance containing one-group microscoic cross
|
||||
sections in units of barns, and a path to a depletion chain file::
|
||||
|
||||
# load in the microscopic cross sections
|
||||
materials = openmc.Materials()
|
||||
...
|
||||
|
||||
# load in the microscopic cross sections
|
||||
micro_xs = openmc.deplete.MicroXS.from_csv(micro_xs_path)
|
||||
|
||||
op = openmc.deplete.IndependentOperator(materials, micro_xs, chain_file)
|
||||
|
||||
.. note::
|
||||
|
|
@ -229,7 +233,7 @@ and a path to a depletion chain file::
|
|||
An alternate constructor,
|
||||
:meth:`~openmc.deplete.IndependentOperator.from_nuclides`, accepts a volume and
|
||||
dictionary of nuclide concentrations in place of the :class:`openmc.Materials`
|
||||
object::
|
||||
instance::
|
||||
|
||||
nuclides = {'U234': 8.92e18,
|
||||
'U235': 9.98e20,
|
||||
|
|
@ -250,32 +254,17 @@ transport-depletion calculation and follow the same steps from there.
|
|||
.. note::
|
||||
|
||||
Ideally, one-group cross section data should be available for every
|
||||
reaction in the depletion chain. If a nuclide that has a reaction
|
||||
associated with it in the depletion chain is present in the `nuclides`
|
||||
parameter but not the cross section data, that reaction will not be
|
||||
simulated.
|
||||
reaction in the depletion chain. If cross section data is not present for
|
||||
a nuclide in the depletion chain with at least one reaction, that reaction
|
||||
will not be simulated.
|
||||
|
||||
Generating Microscopic Cross Sections
|
||||
Loading and Generating Microscopic Cross Sections
|
||||
-------------------------------------
|
||||
|
||||
Users can generate the one-group microscopic cross sections needed by
|
||||
:class:`~openmc.deplete.IndependentOperator` using the
|
||||
:class:`~openmc.deplete.MicroXS` class::
|
||||
|
||||
import openmc
|
||||
|
||||
model = openmc.Model.from_xml()
|
||||
|
||||
micro_xs = openmc.deplete.MicroXS.from_model(model,
|
||||
model.materials[0],
|
||||
chain_file)
|
||||
|
||||
The :meth:`~openmc.deplete.MicroXS.from_model()` method will produce a
|
||||
:class:`~openmc.deplete.MicroXS` object with microscopic cross section data in
|
||||
units of barns, which is what :class:`~openmc.deplete.IndependentOperator`
|
||||
expects the units to be. The :class:`~openmc.deplete.MicroXS` class also
|
||||
includes functions to read in cross section data directly from a ``.csv`` file
|
||||
or from data arrays::
|
||||
As mentioned earlier, any transport code could be used to calculate one-group
|
||||
microscopic cross sections. The :mod:`openmc.deplete` module provides the
|
||||
:class:`~openmc.deplete.MicroXS` class, which contains methods to read in
|
||||
pre-caluclated cross sections from a ``.csv`` file or from data arrays::
|
||||
|
||||
micro_xs = MicroXS.from_csv(micro_xs_path)
|
||||
|
||||
|
|
@ -294,6 +283,19 @@ or from data arrays::
|
|||
sure your cross sections are in the correct units before passing to a
|
||||
:class:`~openmc.deplete.IndependentOperator` object.
|
||||
|
||||
The :class:`~openmc.deplete.MicroXS` class also contains a method to generate one-group microscopic cross sections using OpenMC's transport solver. The
|
||||
:meth:`~openmc.deplete.MicroXS.from_model()` method will produce a
|
||||
:class:`~openmc.deplete.MicroXS` instance with microscopic cross section data in
|
||||
units of barns::
|
||||
|
||||
import openmc
|
||||
|
||||
model = openmc.Model.from_xml()
|
||||
|
||||
micro_xs = openmc.deplete.MicroXS.from_model(model,
|
||||
model.materials[0],
|
||||
chain_file)
|
||||
|
||||
If you are runnnig :meth:`~openmc.deplete.MicroXS.from_model()` on a cluster
|
||||
that does not share local filesystems across nodes, you'll need to set an
|
||||
environment variable so that each MPI process knows where to store output files
|
||||
|
|
@ -320,12 +322,13 @@ normalizing reaction rates:
|
|||
|
||||
1. ``source-rate`` normalization, which assumes the ``source_rate`` provided by
|
||||
the time integrator is a flux, and obtains the reaction rates by multiplying
|
||||
the cross-sections by the ``source-rate``.
|
||||
the cross sections by the ``source-rate``.
|
||||
2. ``fission-q`` normalization, which uses the ``power`` or ``power_density``
|
||||
provided by the time integrator to obtain reaction rates by computing a value
|
||||
for the flux based on this power. The general equation for the flux is
|
||||
|
||||
.. math::
|
||||
:label: fission-q
|
||||
|
||||
\phi = \frac{P}{\sum\limits_i (Q_i \sigma^f_i N_i)}
|
||||
|
||||
|
|
@ -349,19 +352,18 @@ normalizing reaction rates:
|
|||
Multiple Materials
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Running a depletion simulation with multiple materials using the
|
||||
``source-rate`` normalization method treats each material as completely
|
||||
separate with respect to reaction rates. This can be useful for running many
|
||||
different cases of a particular scenario. However, running a depletion
|
||||
simulation with multiple materials using the ``fission-q`` normalization method
|
||||
treats each material as part of the same "reactor" due to how ``fission-q``
|
||||
normalization accumulates energy values from each material to a single value.
|
||||
This behavior may change in the future.
|
||||
A transport-independent depletion simulation using ``source-race`` normalization
|
||||
will calculate reaction rates for each material independently. This can be
|
||||
useful for running many different cases of a particular scenario. A depletion
|
||||
simulation using ``fission-q`` normalization will sum the energy values from
|
||||
each material into :math:`Q` in Equation :math:numref:`fission-q`, which is
|
||||
used to normalize the reaction rates for all materials. This behavior may
|
||||
change in the future.
|
||||
|
||||
Time integration
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
The one-group microscopic cross sections passed to
|
||||
:class:`openmc.deplete.IndependentOperator` are fixed values for the entire
|
||||
depletion simulation. This implicit assumption may produce inaccurate results
|
||||
for certain scenarios.
|
||||
The values of the one-group microscopic cross sections passed to
|
||||
:class:`openmc.deplete.IndependentOperator` are fixed for the entire depletion
|
||||
simulation. This implicit assumption may produce inaccurate results for certain
|
||||
scenarios.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue