Release notes for 0.13.0

This commit is contained in:
Paul Romano 2022-01-11 08:18:47 -06:00
parent c6ad93d681
commit fdd5e10822
13 changed files with 134 additions and 4 deletions

View file

@ -90,6 +90,7 @@ Building geometry
openmc.Complement
openmc.Cell
openmc.Universe
openmc.DAGMCUniverse
openmc.RectLattice
openmc.HexLattice
openmc.Geometry
@ -143,6 +144,8 @@ Constructing Tallies
openmc.ParticleFilter
openmc.RegularMesh
openmc.RectilinearMesh
openmc.CylindricalMesh
openmc.SphericalMesh
openmc.UnstructuredMesh
openmc.Trigger
openmc.TallyDerivative

View file

@ -13,10 +13,12 @@ Functions
:template: myfunction.rst
calculate_volumes
export_properties
finalize
find_cell
find_material
hard_reset
import_properties
init
iter_batches
keff

View file

@ -0,0 +1,100 @@
====================
What's New in 0.13.0
====================
.. currentmodule:: openmc
-------
Summary
-------
This release of OpenMC includes several noteworthy and unique features. Most
importantly, mesh-based weight windows have been added and work with all
supported mesh types (regular, rectilinear, cylindrical, spherical, and
unstructured). Other additions include torus surfaces, an ability to place
CAD-based geometries in universes, a feature to export/import physical
properties, and a filter for particle time.
There is one breaking changing in the Python API. The
:class:`openmc.deplete.Operator` class used to accept :class:`~openmc.Geometry`
and :class:`~openmc.Settings` objects as its first two arguments; users now need
to pass a :class:`~openmc.model.Model` class instead.
The minimum supported Python version is now 3.6.
------------
New Features
------------
- Variance reduction using mesh-based weight windows is now possible with the
:class:`~openmc.WeightWindows` class.
- Users can now model axis-aligned tori using the :class:`~openmc.XTorus`,
:class:`~openmc.YTorus`, and :class:`~openmc.ZTorus` classes.
- DAGMC CAD-based geometries can now be placed in a single universe using
:class:`~openmc.DAGMCUniverse`, allowing users to combine CSG and CAD-based
geometry in a single model.
- The C/C++ API has two new functions ``openmc_properties_export`` and
``openmc_properties_import`` with corresponding Python API bindings,
:func:`~openmc.lib.export_properties` and
:func:`~openmc.lib.import_properties`. These functions allow physical
properties (temperatures, densities, material compositions) to be written to
an HDF5 file and re-used for subsequent simulations.
- A new :class:`~openmc.stats.PowerLaw` univariate distribution
- The capabilities of the :class:`~openmc.Model` class have been substantially
expanded (e.g., the :meth:`~openmc.model.Model.deplete`,
:meth:`~openmc.model.Model.plot_geometry`, and
:meth:`~openmc.model.Model.rotate_cells` methods).
- A new :class:`~openmc.TimeFilter` class that allows tallies to be filtered
by the particle's time, which is now tracked.
- The :class:`~openmc.Source` class now allows you to specify a time
distribution.
- The new :class:`~openmc.CylindricalMesh` and :class:`~openmc.SphericalMesh`
can be used for mesh tallies over cylidrical and spherical meshes,
respectively.
- Geometry plotting, which used to produce the files in the unusual .ppm format,
now produces .png files by default.
---------
Bug Fixes
---------
- `Fix for shared fission bank memory errors <https://github.com/openmc-dev/openmc/pull/1856>`_
- `Make sure properties export only happens from root process <https://github.com/openmc-dev/openmc/pull/1864>`_
- `Fix pathlib use error in openmc-ace-to-hdf5 <https://github.com/openmc-dev/openmc/pull/1867>`_
- `Fix DAGMC and libMesh variable in CMake config <https://github.com/openmc-dev/openmc/pull/1870>`_
- `Fix bug associated with volume calc in MG mode <https://github.com/openmc-dev/openmc/pull/1889>`_
- `Add missing Settings.write_initial_source property <https://github.com/openmc-dev/openmc/pull/1895>`_
- `Bug fixes for specifying Materials.cross_sections <https://github.com/openmc-dev/openmc/pull/1898>`_
- `Removing Legendre filter in diffusion coefficient results <https://github.com/openmc-dev/openmc/pull/1909>`_
- `Ensure particles lost during event_calculate_xs are terminated <https://github.com/openmc-dev/openmc/pull/1911>`_
- `Fixed parsing of xsdir entries with a continuation line <https://github.com/openmc-dev/openmc/pull/1913>`_
- `openmc.RegularMesh attribute consistency <https://github.com/openmc-dev/openmc/pull/1922>`_
- `Ensure secondary particles below energy cutoff are not created <https://github.com/openmc-dev/openmc/pull/1924>`_
- `Allow compilation with g++ 11 <https://github.com/openmc-dev/openmc/pull/1938>`_
- `Depletion-related bug fixes <https://github.com/openmc-dev/openmc/pull/1946>`_
- `Miscellaneous bug fixes <https://github.com/openmc-dev/openmc/pull/1948>`_
- `Fixes for various bugs <https://github.com/openmc-dev/openmc/pull/1949>`_
- `Reset triggers in openmc_reset <https://github.com/openmc-dev/openmc/issues/1957>`_
------------
Contributors
------------
- `Hunter Belanger <https://github.com/HunterBelanger>`_
- `Helen Brooks <https://github.com/helen-brooks>`_
- `Andrew Davis <https://github.com/makeclean>`_
- `Valerio Giusti <https://github.com/valeriogiusti>`_
- `Jeff Hammond <https://github.com/jeffhammond>`_
- `Yuan Hu <https://github.com/YuanHu-PKU-KIT>`_
- `Andrew Johnson <https://github.com/drewejohnson>`_
- `Miriam Kreher <https://github.com/mkreher13>`_
- `Amanda Lund <https://github.com/amandalund>`_
- `Adam Nelson <https://github.com/nelsonag>`_
- `April Novak <https://github.com/aprilnovak>`_
- `Ariful Islam Pranto <https://github.com/AI-Pranto>`_
- `Gavin Ridley <https://github.com/gridley>`_
- `Paul Romano <https://github.com/paulromano>`_
- `Olaf Schumann <https://github.com/ojschumann>`_
- `Jonathan Shimwell <https://github.com/Shimwell>`_
- `Patrick Shriwise <https://github.com/pshriwise>`_
- `John Tramm <https://github.com/jtramm>`_

View file

@ -7,6 +7,7 @@ Release Notes
.. toctree::
:maxdepth: 1
0.13.0
0.12.2
0.12.1
0.12.0

View file

@ -1354,6 +1354,8 @@ class EnergyoutFilter(EnergyFilter):
class TimeFilter(RealFilter):
"""Bins tally events based on the particle's time.
.. versionadded:: 0.13.0
Parameters
----------
values : iterable of float

View file

@ -144,8 +144,7 @@ def current_batch():
def export_properties(filename=None, output=True):
"""Export physical properties.
.. versionchanged:: 0.13.0
The *output* argument was added.
.. versionadded:: 0.13.0
Parameters
----------
@ -228,6 +227,8 @@ def hard_reset():
def import_properties(filename):
"""Import physical properties.
.. versionadded:: 0.13.0
Parameters
----------
filename : str

View file

@ -1566,6 +1566,8 @@ class Settings:
def from_xml(cls, path='settings.xml'):
"""Generate settings from XML file
.. versionadded:: 0.13.0
Parameters
----------
path : str, optional

View file

@ -244,11 +244,14 @@ class Uniform(Univariate):
params = get_text(elem, 'parameters').split()
return cls(*map(float, params))
class PowerLaw(Univariate):
"""Distribution with power law probability over a finite interval [a,b]
The power law distribution has density function :math:`p(x) dx = c x^n dx`.
.. versionadded:: 0.13.0
Parameters
----------
a : float, optional
@ -914,6 +917,8 @@ class Mixture(Univariate):
def to_xml_element(self, element_name):
"""Return XML representation of the mixture distribution
.. versionadded:: 0.13.0
Parameters
----------
element_name : str
@ -939,6 +944,8 @@ class Mixture(Univariate):
def from_xml_element(cls, elem):
"""Generate mixture distribution from an XML element
.. versionadded:: 0.13.0
Parameters
----------
elem : xml.etree.ElementTree.Element

View file

@ -2193,6 +2193,8 @@ class XTorus(TorusMixin, Surface):
r"""A torus of the form :math:`(x - x_0)^2/B^2 + (\sqrt{(y - y_0)^2 + (z -
z_0)^2} - A)^2/C^2 - 1 = 0`.
.. versionadded:: 0.13.0
Parameters
----------
x0 : float
@ -2262,6 +2264,8 @@ class YTorus(TorusMixin, Surface):
r"""A torus of the form :math:`(y - y_0)^2/B^2 + (\sqrt{(x - x_0)^2 + (z -
z_0)^2} - A)^2/C^2 - 1 = 0`.
.. versionadded:: 0.13.0
Parameters
----------
x0 : float
@ -2331,6 +2335,8 @@ class ZTorus(TorusMixin, Surface):
r"""A torus of the form :math:`(z - z_0)^2/B^2 + (\sqrt{(x - x_0)^2 + (y -
y_0)^2} - A)^2/C^2 - 1 = 0`.
.. versionadded:: 0.13.0
Parameters
----------
x0 : float

View file

@ -869,6 +869,8 @@ class Tally(IDManagerMixin):
def from_xml_element(cls, elem, **kwargs):
"""Generate tally object from an XML element
.. versionadded:: 0.13.0
Parameters
----------
elem : xml.etree.ElementTree.Element

View file

@ -629,6 +629,8 @@ class Universe(UniverseBase):
class DAGMCUniverse(UniverseBase):
"""A reference to a DAGMC file to be used in the model.
.. versionadded:: 0.13.0
Parameters
----------
filename : str

View file

@ -358,6 +358,8 @@ class VolumeCalculation:
def from_xml_element(cls, elem):
"""Generate volume calculation object from an XML element
.. versionadded:: 0.13.0
Parameters
----------
elem : xml.etree.ElementTree.Element

View file

@ -18,7 +18,7 @@ class WeightWindows(IDManagerMixin):
This class enables you to specify weight window parameters that are used in
a simulation. Multiple sets of weight windows can be defined for different
meshes and different particles. An iterable of :class:`WeightWindows`
instances can be assigned to the :attr:`~openmc.Settings.weight_windows`
instances can be assigned to the :attr:`openmc.Settings.weight_windows`
attribute, which is then exported to XML.
Weight window lower/upper bounds are to be specified for each combination of