mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-28 22:26:08 -04:00
Merge pull request #2174 from paulromano/prepare-0.13.1
Prepare for version 0.13.1
This commit is contained in:
commit
48fb58a05d
28 changed files with 296 additions and 50 deletions
|
|
@ -51,3 +51,10 @@ Spatial Distributions
|
|||
openmc.stats.SphericalIndependent
|
||||
openmc.stats.Box
|
||||
openmc.stats.Point
|
||||
|
||||
.. autosummary::
|
||||
:toctree: generated
|
||||
:nosignatures:
|
||||
:template: myfunction.rst
|
||||
|
||||
openmc.stats.spherical_uniform
|
||||
|
|
|
|||
182
docs/source/releasenotes/0.13.1.rst
Normal file
182
docs/source/releasenotes/0.13.1.rst
Normal file
|
|
@ -0,0 +1,182 @@
|
|||
====================
|
||||
What's New in 0.13.1
|
||||
====================
|
||||
|
||||
.. currentmodule:: openmc
|
||||
|
||||
-------
|
||||
Summary
|
||||
-------
|
||||
|
||||
This release of OpenMC includes many bug fixes as well as improvements in
|
||||
geometry modeling, mesh functionality, source specification, depletion
|
||||
capabilities, and other general enhancements. The depletion module features a
|
||||
new transport operator, :class:`openmc.deplete.IndependentOperator`, that allows
|
||||
a depletion calculation to be performed using arbitrary one-group cross sections
|
||||
(e.g., generated by an external solver) along with a
|
||||
:class:`openmc.deplete.MicroXS` class for managing one-group cross sections. The
|
||||
track file generation capability has been significantly overhauled and a new
|
||||
:class:`openmc.Tracks` class was introduced to allow access to information in
|
||||
track files from the Python API. Support has been added for new ENDF thermal
|
||||
scattering evaluations that use mixed coherent/incoherent elastic scattering.
|
||||
|
||||
------------------------------------
|
||||
Compatibility Notes and Deprecations
|
||||
------------------------------------
|
||||
|
||||
- The ``openmc.deplete.Operator`` class has been renamed
|
||||
:class:`openmc.deplete.CoupledOperator`.
|
||||
- The ``openmc.deplete.ResultsList`` class has been renamed to
|
||||
:class:`openmc.deplete.Results` and no longer requires you to call the
|
||||
``from_hdf5()`` method in order to create it; instead, you can directly
|
||||
instantiate it.
|
||||
- A few methods that represent k-effective have been renamed for the sake of
|
||||
consistency:
|
||||
|
||||
- ``openmc.StatePoint.k_combined`` is now :attr:`openmc.StatePoint.keff`
|
||||
- ``openmc.deplete.ResultsList.get_eigenvalue`` is now
|
||||
:meth:`openmc.deplete.Results.get_keff`
|
||||
|
||||
- The :class:`openmc.stats.SphericalIndependent` class, which used to
|
||||
accept a distribution for ``theta`` now accepts a distribution for ``cos_theta``
|
||||
instead in order to more easily handle the common case of specifying a uniform
|
||||
spatial distribution over a sphere (also see the new
|
||||
:func:`openmc.stats.spherical_uniform` function).
|
||||
|
||||
- If you are building OpenMC from source, note that several of our CMake options
|
||||
have been changed:
|
||||
|
||||
========== ======================
|
||||
Old option New option
|
||||
========== ======================
|
||||
debug ---
|
||||
optimize ---
|
||||
profile OPENMC_ENABLE_PROFILE
|
||||
coverage OPENMC_ENABLE_COVERAGE
|
||||
openmp OPENMC_USE_OPENMP
|
||||
--- OPENMC_USE_MPI
|
||||
dagmc OPENMC_USE_DAGMC
|
||||
libmesh OPENMC_USE_LIBMESH
|
||||
========== ======================
|
||||
|
||||
The ``debug`` and ``optimize`` options have been removed; instead, use the
|
||||
standard `CMAKE_BUILD_TYPE
|
||||
<https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html>`_
|
||||
variable.
|
||||
|
||||
------------
|
||||
New Features
|
||||
------------
|
||||
|
||||
- Two new composite surfaces: :class:`openmc.model.IsogonalOctagon` and
|
||||
:class:`openmc.model.CylinderSector`.
|
||||
- The :class:`~openmc.DAGMCUniverse` class now has a
|
||||
:attr:`~openmc.DAGMCUniverse.bounding_box` attribute and a
|
||||
:meth:`~openmc.DAGMCUniverse.bounding_region` method.
|
||||
- When translating a :class:`~openmc.Region` using the
|
||||
:meth:`~openmc.Region.translate` method, there is now an ``inplace`` argument.
|
||||
- The :class:`~openmc.Material` class has several new methods and attributes:
|
||||
|
||||
- The :meth:`~openmc.Material.add_components` methods allows you to add
|
||||
multiple nuclides/elements to a material with a single call by passing a
|
||||
dictionary.
|
||||
- The :meth:`~openmc.Material.get_activity` method returns the activity of a
|
||||
material in Bq, Bq/g, or Bq/cm³.
|
||||
- The :meth:`~openmc.Material.remove_element` method removes an element from a
|
||||
material
|
||||
- The :meth:`~openmc.Material.get_nuclide_atoms` method gives the number of
|
||||
atoms of each nuclide in a material
|
||||
|
||||
- All mesh classes now have a ``volumes`` property that provides the volume of
|
||||
each mesh element as well as ``write_data_to_vtk`` methods.
|
||||
- Support for externally managed MOAB meshes or libMesh meshes.
|
||||
- Multiple discrete distributions can be merged with the new
|
||||
:meth:`~openmc.stats.Discrete.merge` method.
|
||||
- The :func:`openmc.stats.spherical_uniform` function creates a uniform
|
||||
distribution over a sphere using the
|
||||
:class:`~openmc.stats.SphericalIndependent` class.
|
||||
- Univariate distributions in the :mod:`openmc.stats` module now have
|
||||
``sample()`` methods.
|
||||
- An ``openmc_sample_external_source`` function has been added to the C API with
|
||||
a corresponding Python binding :func:`openmc.lib.sample_external_source`.
|
||||
- The track file generation capability has been completely overhauled. Track
|
||||
files now include much more information, and a new :class:`~openmc.Tracks`
|
||||
class allows access to track file information from the Python API and has a
|
||||
:meth:`~openmc.Tracks.write_to_vtk` method for writing a VTK file. Multiple
|
||||
tracks are now written to a single file (one per MPI rank).
|
||||
- A new :func:`openmc.wwinp_to_wws` function that converts weight windows from a
|
||||
``wwinp`` file to a list of :class:`~openmc.WeightWindows` objects.
|
||||
- The new :meth:`openmc.EnergyFilter.from_group_structure` method provides a
|
||||
way of creating an energy filter with a group structure identified by name.
|
||||
- The :class:`openmc.data.Decay` class now has a
|
||||
:attr:`~openmc.data.Decay.sources` property that provides radioactive decay
|
||||
source distributions.
|
||||
- A :class:`openmc.mgxs.ReducedAbsorptionXS` class produces a multigroup cross
|
||||
section representing "reduced" absorption (absorption less neutron production
|
||||
from (n,xn) reactions).
|
||||
- Added support in the Python API and HDF5 nuclear data format for new ENDF
|
||||
thermal neutron scattering evaluations with mixed coherent elastic and
|
||||
incoherent elastic.
|
||||
- CMake now relies on ``find_package(MPI)`` for a more standard means of
|
||||
identifying an MPI compiler configuration.
|
||||
|
||||
---------
|
||||
Bug Fixes
|
||||
---------
|
||||
|
||||
- `Fix bug when a rotation matrix is passed to Halfspace.rotate <https://github.com/openmc-dev/openmc/pull/1974>`_
|
||||
- `Fix bug for spherical mesh string repr <https://github.com/openmc-dev/openmc/pull/1983>`_
|
||||
- `Fix package_data specification to include pyx files <https://github.com/openmc-dev/openmc/pull/1989>`_
|
||||
- `Allow meshes with same ID to appear in multiple files <https://github.com/openmc-dev/openmc/pull/1990>`_
|
||||
- `Fix overwritten variable in get_libraries_from_xsdata <https://github.com/openmc-dev/openmc/pull/1994>`_
|
||||
- `Write output files to correct directory <https://github.com/openmc-dev/openmc/pull/1998>`_
|
||||
- `Allow CMake to properly find third-party packages <https://github.com/openmc-dev/openmc/pull/2006>`_
|
||||
- `Fix Region.from_expression when ")(" appears in specification <https://github.com/openmc-dev/openmc/pull/2012>`_
|
||||
- `Move lost particle reset from finalize() to reset() <https://github.com/openmc-dev/openmc/pull/2015>`_
|
||||
- `Minor typo fixes in test_lattice.py <https://github.com/openmc-dev/openmc/pull/2024>`_
|
||||
- `Fix color assignment in Universe.plot <https://github.com/openmc-dev/openmc/pull/2034>`_
|
||||
- `Several depletion-related fixes <https://github.com/openmc-dev/openmc/pull/2037>`_
|
||||
- `Allow control of C++ standard used by compiler <https://github.com/openmc-dev/openmc/pull/2040/files>`_
|
||||
- `Fix IO format documentation for surface source read/write <https://github.com/openmc-dev/openmc/pull/2048>`_
|
||||
- `Make sure basis gets set in Plot.from_geometry <https://github.com/openmc-dev/openmc/pull/2050>`_
|
||||
- `Improve robustness of torus distance calculation <https://github.com/openmc-dev/openmc/pull/2053>`_
|
||||
- `Allow use of redundant fission when adjusting KERMA in from_njoy <https://github.com/openmc-dev/openmc/pull/2055>`_
|
||||
- `Disable GNU extensions for CMake target <https://github.com/openmc-dev/openmc/pull/2072>`_
|
||||
- `Two from_xml fixes <https://github.com/openmc-dev/openmc/pull/2074>`_
|
||||
- `Fix for rare infinite loop when finding cell <https://github.com/openmc-dev/openmc/pull/2075>`_
|
||||
- `Allow photon heating to be tallied by nuclide <https://github.com/openmc-dev/openmc/pull/2076>`_
|
||||
- `Use UTF-8 encoding when reading dose coefficients <https://github.com/openmc-dev/openmc/pull/2078>`_
|
||||
- `Fix a corner case in Region.from_expression <https://github.com/openmc-dev/openmc/pull/2081>`_
|
||||
- `Fix bug in spherical and cylindrical meshes <https://github.com/openmc-dev/openmc/pull/2108>`_
|
||||
- `Ensure weight window bounds are flattened when writing to XML <https://github.com/openmc-dev/openmc/pull/2113>`_
|
||||
- `Fix for std::cout sync bug in output.cpp <https://github.com/openmc-dev/openmc/pull/2122>`_
|
||||
- `Allow compiling against fmt v9 <https://github.com/openmc-dev/openmc/pull/2136>`_
|
||||
- `Fix TimeFilter for small time intervals <https://github.com/openmc-dev/openmc/pull/2168>`_
|
||||
|
||||
------------
|
||||
Contributors
|
||||
------------
|
||||
|
||||
- `David Andrs <https://github.com/andrsd>`_
|
||||
- `Hunter Belanger <https://github.com/HunterBelanger>`_
|
||||
- `Helen Brooks <https://github.com/helen-brooks>`_
|
||||
- `Rémi Delaporte-Mathurin <https://github.com/RemDelaporteMathurin>`_
|
||||
- `Joffrey Dorville <https://github.com/JoffreyDorville>`_
|
||||
- `Christopher Fichtlscherer <https://github.com/cfichtlscherer>`_
|
||||
- `Lewis Gross <https://github.com/lewisgross1296>`_
|
||||
- `Andrew Johnson <https://github.com/drewejohnson>`_
|
||||
- `Kalin Kiesling <https://github.com/kkiesling>`_
|
||||
- `Amanda Lund <https://github.com/amandalund>`_
|
||||
- `Richard Morrison <https://github.com/richmorrison>`_
|
||||
- `Patrick Myers <https://github.com/myerspat>`_
|
||||
- `Adam Nelson <https://github.com/nelsonag>`_
|
||||
- `April Novak <https://github.com/aprilnovak>`_
|
||||
- `Ethan Peterson <https://github.com/eepeterson>`_
|
||||
- `Gavin Ridley <https://github.com/gridley>`_
|
||||
- `Paul Romano <https://github.com/paulromano>`_
|
||||
- `Jonathan Shimwell <https://github.com/Shimwell>`_
|
||||
- `Patrick Shriwise <https://github.com/pshriwise>`_
|
||||
- `Amelia Trainer <https://github.com/ameliojo>`_
|
||||
- `John Tramm <https://github.com/jtramm>`_
|
||||
- `Bob Urberger <https://github.com/burberger>`_
|
||||
- `Olek Yardas <https://github.com/yardasol>`_
|
||||
|
|
@ -7,6 +7,7 @@ Release Notes
|
|||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
0.13.1
|
||||
0.13.0
|
||||
0.12.2
|
||||
0.12.1
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ are requested.
|
|||
|
||||
The depletion module is designed such that the reaction rate solution (the
|
||||
transport "operator") is completely isolated from the solution of the
|
||||
transmutation equations and the method used for advancing time.
|
||||
transmutation equations and the method used for advancing time.
|
||||
|
||||
:mod:`openmc.deplete` supports multiple time-integration methods for determining
|
||||
material compositions over time. Each method appears as a different class.
|
||||
|
|
@ -40,7 +40,7 @@ time::
|
|||
Note that the coupling between the reaction rate solver and the transmutation
|
||||
solver happens in-memory rather than by reading/writing files on disk. OpenMC
|
||||
has two categories of transport operators for obtaining transmutation reaction
|
||||
rates.
|
||||
rates.
|
||||
|
||||
.. _coupled-depletion:
|
||||
|
||||
|
|
@ -65,7 +65,7 @@ Any material that contains a fissionable nuclide is depleted by default, but
|
|||
this can behavior can be changed with the :attr:`Material.depletable` attribute.
|
||||
|
||||
.. important::
|
||||
|
||||
|
||||
The volume must be specified for each material that is depleted by setting
|
||||
the :attr:`Material.volume` attribute. This is necessary in order to
|
||||
calculate the proper normalization of tally results based on the source rate.
|
||||
|
|
@ -198,8 +198,8 @@ Transport-independent depletion
|
|||
===============================
|
||||
|
||||
.. warning::
|
||||
|
||||
This feature is still under heavy development and has yet to be rigorously
|
||||
|
||||
This feature is still under heavy development and has yet to be rigorously
|
||||
verified. API changes and feature additions are possible and likely in
|
||||
the near future.
|
||||
|
||||
|
|
@ -237,7 +237,7 @@ object::
|
|||
'U236': 4.57e18,
|
||||
'O16': 4.64e22,
|
||||
'O17': 1.76e19}
|
||||
volume = 0.5
|
||||
volume = 0.5
|
||||
op = openmc.deplete.IndependentOperator.from_nuclides(volume,
|
||||
nuclides,
|
||||
micro_xs,
|
||||
|
|
@ -250,8 +250,8 @@ 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`
|
||||
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.
|
||||
|
||||
|
|
@ -289,7 +289,7 @@ or from data arrays::
|
|||
.. important::
|
||||
|
||||
Both :meth:`~openmc.deplete.MicroXS.from_csv()` and
|
||||
:meth:`~openmc.deplete.MicroXS.from_array()` assume the cross section values
|
||||
:meth:`~openmc.deplete.MicroXS.from_array()` assume the cross section values
|
||||
provided are in barns by defualt, but have no way of verifying this. Make
|
||||
sure your cross sections are in the correct units before passing to a
|
||||
:class:`~openmc.deplete.IndependentOperator` object.
|
||||
|
|
@ -315,26 +315,28 @@ normalizing reaction rates:
|
|||
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
|
||||
for the flux based on this power. The general equation for the flux is
|
||||
|
||||
.. math::
|
||||
|
||||
\phi = \frac{P}{V \cdot \sum_i (Q_i \cdot \sigma^f_i \cdot \n_i)}
|
||||
\phi = \frac{P}{\sum\limits_i (Q_i \sigma^f_i N_i)}
|
||||
|
||||
where :math:`\sum_i` is the sum over all nuclides :math:`i`. This equation
|
||||
makes the same assumptions and issues as discussed in
|
||||
:ref:`energy-deposition`. Unfortunately, the proposed solution in that
|
||||
where :math:`P` is the power, :math:`Q_i` is the fission Q value for nuclide
|
||||
:math:`i`, :math:`\sigma_i^f` is the microscopic fission cross section for
|
||||
nuclide :math:`i`, and :math:`N_i` is the number of atoms of nuclide
|
||||
:math:`i`. This equation makes the same assumptions and issues as discussed
|
||||
in :ref:`energy-deposition`. Unfortunately, the proposed solution in that
|
||||
section does not apply here since we are decoupled from transport code.
|
||||
However, there is a method to converge to a more accurate value for flux by
|
||||
using substeps during time integration.
|
||||
`This paper <https://doi.org/10.1016/j.anucene.2016.05.031>`_ provides a
|
||||
good discussion of this method.
|
||||
using substeps during time integration. `This paper
|
||||
<https://doi.org/10.1016/j.anucene.2016.05.031>`_ provides a good discussion
|
||||
of this method.
|
||||
|
||||
.. warning::
|
||||
|
||||
The accuracy of results when using ``fission-q`` is entirely dependent on
|
||||
your depletion chain. Make sure it has sufficient data to resolve the
|
||||
dynamics of your particular scenario.
|
||||
dynamics of your particular scenario.
|
||||
|
||||
Multiple Materials
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue