Skip to content

Commit

Permalink
Merge pull request #2269 from paulromano/release-0.13.2
Browse files Browse the repository at this point in the history
Release of version 0.13.2
  • Loading branch information
paulromano authored Oct 21, 2022
2 parents 9bf069e + 4fd665c commit 030f73a
Show file tree
Hide file tree
Showing 17 changed files with 141 additions and 27 deletions.
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ project(openmc C CXX)

# Set version numbers
set(OPENMC_VERSION_MAJOR 0)
set(OPENMC_VERSION_MINOR 14)
set(OPENMC_VERSION_RELEASE 0)
set(OPENMC_VERSION_MINOR 13)
set(OPENMC_VERSION_RELEASE 2)
set(OPENMC_VERSION ${OPENMC_VERSION_MAJOR}.${OPENMC_VERSION_MINOR}.${OPENMC_VERSION_RELEASE})
configure_file(include/openmc/version.h.in "${CMAKE_BINARY_DIR}/include/openmc/version.h" @ONLY)

Expand Down
4 changes: 2 additions & 2 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@
# built documents.
#
# The short X.Y version.
version = "0.14"
version = "0.13"
# The full version, including alpha/beta/rc tags.
release = "0.14.0"
release = "0.13.2"

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
3 changes: 2 additions & 1 deletion docs/source/io_formats/statepoint.rst
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,8 @@ The current version of the statepoint file format is 17.0.
- **y** (*double[]*) -- Interpolant values for energyfunction
interpolation. Only used for 'energyfunction' filters.

:Attributes: - **interpolation** (*int*) -- Interpolation type. Only used for
:Attributes:
- **interpolation** (*int*) -- Interpolation type. Only used for
'energyfunction' filters.

**/tallies/derivatives/derivative <id>/**
Expand Down
6 changes: 6 additions & 0 deletions docs/source/pythonapi/stats.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ Univariate Probability Distributions
openmc.stats.Legendre
openmc.stats.Mixture
openmc.stats.Normal

.. autosummary::
:toctree: generated
:nosignatures:
:template: myfunction.rst

openmc.stats.muir

Angular Distributions
Expand Down
99 changes: 99 additions & 0 deletions docs/source/releasenotes/0.13.2.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
====================
What's New in 0.13.2
====================

.. currentmodule:: openmc

-------
Summary
-------

This release of OpenMC includes several bug fixes, performance improvements for
complex geometries and depletion simulations, and other general enhancements.
Notably, a capability has been added to compute the photon spectra from decay of
unstable nuclides. Alongside that, a new :data:`openmc.config` configuration
variable has been introduced that allows easier configuration of data sources.
Additionally, users can now perform cell or material rejection when sampling
external source distributions. Finally,

------------------------------------
Compatibility Notes and Deprecations
------------------------------------

- If you are building against libMesh for unstructured mesh tally support,
version 1.6 or higher is now required.
- The ``openmc.stats.Muir`` class has been replaced by a
:func:`openmc.stats.muir` function that returns an instance of
:class:`openmc.stats.Normal`.

------------
New Features
------------

- The :meth:`openmc.Material.get_nuclide_atom_densities` method now takes an
optional ``nuclide`` argument.
- Functions/methods in the :mod:`openmc.deplete` module now accept times in
Julian years (``'a'``).
- The :meth:`openmc.Universe.plot` method now allows a pre-existing axes object
to be passed in.
- Performance optimization for geometries with many complex regions.
- Performance optimization for depletion by avoiding deepcopies and caching
reaction rates.
- The :class:`openmc.RegularMesh` class now has a
:meth:`~openmc.RegularMesh.from_domain` classmethod.
- The :class:`openmc.CylindricalMesh` class now has a
:meth:`~openmc.CylindricalMesh.from_domain` classmethod.
- Improved method to condense diffusion coefficients from the :mod:`openmc.mgxs`
module.
- A new :data:`openmc.config` configuration variable has been introduced that
allows data sources to be specified at runtime or via environment variables.
- The :class:`openmc.EnergyFunctionFilter` class now supports multiple
interpolation schemes, not just linear-linear interpolation.
- The :class:`openmc.DAGMCUniverse` class now has ``material_names``,
``n_cells``, and ``n_surfaces`` attributes.
- A new :func:`openmc.data.decay_photon_energy` function has been added that
returns the energy spectrum of photons emitted from the decay of an unstable
nuclide.
- The :class:`openmc.Material` class also has a new
:attr:`~openmc.Material.decay_photon_energy` attribute that gives the decay
photon energy spectrum from the material based on its constituent nuclides.
- The :class:`openmc.deplete.StepResult` now has a
:meth:`~openmc.deplete.StepResult.get_material` method.
- The :class:`openmc.Source` class now takes a ``domains`` argument that
specifies a list of cells, materials, or universes that is used to reject
source sites (i.e., if the sampled sites are not within the specified domain,
they are rejected).

---------
Bug Fixes
---------

- `Delay call to Tally::set_strides <https://github.com/openmc-dev/openmc/pull/2183>`_
- `Fix reading reference direction from XML for angular distributions <https://github.com/openmc-dev/openmc/pull/2204>`_
- `Fix erroneous behavior in Material.add_components <https://github.com/openmc-dev/openmc/pull/2205>`_
- `Fix reading thermal elastic data from ACE <https://github.com/openmc-dev/openmc/pull/2226>`_
- `Fix reading source file with time attribute <https://github.com/openmc-dev/openmc/pull/2228>`_
- `Fix conversion of multiple thermal scattering data files from ACE <https://github.com/openmc-dev/openmc/pull/2232>`_
- `Fix reading values from wwinp file <https://github.com/openmc-dev/openmc/pull/2242>`_
- `Handle possibility of .ppm file in Universe.plot <https://github.com/openmc-dev/openmc/pull/2251>`_
- `Update volume calc types to mitigate overflow issues <https://github.com/openmc-dev/openmc/pull/2270>`_

------------
Contributors
------------

- `Lewis Gross <https://github.com/lewisgross1296>`_
- `Andrew Johnson <https://github.com/drewejohnson>`_
- `Miriam Kreher <https://github.com/mkreher13>`_
- `James Logan <https://github.com/jlogan03>`_
- `Jose Ignacio Marquez Damien <https://github.com/marquezj>`_
- `Josh May <https://github.com/joshmay1>`_
- `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>`_
- `Patrick Shriwise <https://github.com/pshriwise>`_
- `Jonathan Shimwell <https://github.com/Shimwell>`_
- `Olek Yardas <https://github.com/yardasol>`_
1 change: 1 addition & 0 deletions docs/source/releasenotes/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Release Notes
.. toctree::
:maxdepth: 1

0.13.2
0.13.1
0.13.0
0.12.2
Expand Down
5 changes: 0 additions & 5 deletions include/openmc/constants.h
Original file line number Diff line number Diff line change
Expand Up @@ -340,11 +340,6 @@ enum class RunMode {

enum class GeometryType { CSG, DAG };

//==============================================================================
// Volume Calculation Constants

constexpr uint64_t UINT64_T_MAX {std::numeric_limits<uint64_t>::max()};

} // namespace openmc

#endif // OPENMC_CONSTANTS_H
2 changes: 1 addition & 1 deletion include/openmc/version.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace openmc {
constexpr int VERSION_MAJOR {@OPENMC_VERSION_MAJOR@};
constexpr int VERSION_MINOR {@OPENMC_VERSION_MINOR@};
constexpr int VERSION_RELEASE {@OPENMC_VERSION_RELEASE@};
constexpr bool VERSION_DEV {true};
constexpr bool VERSION_DEV {false};
constexpr std::array<int, 3> VERSION {VERSION_MAJOR, VERSION_MINOR, VERSION_RELEASE};
// clang-format on

Expand Down
2 changes: 1 addition & 1 deletion openmc/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,4 @@
from openmc.model import rectangular_prism, hexagonal_prism, Model


__version__ = '0.14.0-dev'
__version__ = '0.13.2'
2 changes: 1 addition & 1 deletion openmc/data/decay.py
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,7 @@ def decay_photon_energy(nuclide: str) -> Optional[Univariate]:
for the first time, you need to ensure that a depletion chain has been
specified in openmc.config['chain_file'].
.. versionadded:: 0.14.0
.. versionadded:: 0.13.2
Parameters
----------
Expand Down
2 changes: 1 addition & 1 deletion openmc/deplete/stepresult.py
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ def distribute(self, local_materials, ranges):
def get_material(self, mat_id):
"""Return material object for given depleted composition
.. versionadded:: 0.14.0
.. versionadded:: 0.13.2
Parameters
----------
Expand Down
6 changes: 5 additions & 1 deletion openmc/material.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ class Material(IDManagerMixin):
this distribution is the total intensity of the photon source in
[decay/sec].
.. versionadded:: 0.14.0
.. versionadded:: 0.13.2
"""

Expand Down Expand Up @@ -825,6 +825,8 @@ def get_nuclides(self, element: Optional[str] = None):
element : str
Specifies the element to match when searching through the nuclides
.. versionadded:: 0.13.2
Returns
-------
nuclides : list of str
Expand Down Expand Up @@ -877,6 +879,8 @@ def get_nuclide_atom_densities(self, nuclide: Optional[str] = None):
Nuclide for which atom density is desired. If not specified, the
atom density for each nuclide in the material is given.
.. versionadded:: 0.13.2
Returns
-------
nuclides : dict
Expand Down
2 changes: 1 addition & 1 deletion openmc/stats/univariate.py
Original file line number Diff line number Diff line change
Expand Up @@ -729,7 +729,7 @@ def muir(e0, m_rat, kt):
distribution: the mean energy of particles ``e0``, the mass of reactants
``m_rat``, and the ion temperature ``kt``.
.. versionadded:: 0.14.0
.. versionadded:: 0.13.2
Parameters
----------
Expand Down
9 changes: 8 additions & 1 deletion openmc/universe.py
Original file line number Diff line number Diff line change
Expand Up @@ -650,19 +650,26 @@ class DAGMCUniverse(UniverseBase):
bounding_box : 2-tuple of numpy.array
Lower-left and upper-right coordinates of an axis-aligned bounding box
of the universe.
.. versionadded:: 0.13.1
material_names : list of str
Return a sorted list of materials names that are contained within the
DAGMC h5m file. This is useful when naming openmc.Material() objects
as each material name present in the DAGMC h5m file must have a
matching openmc.Material() with the same name.
.. versionadded:: 0.13.2
n_cells : int
The number of cells in the DAGMC model. This is the number of cells at
runtime and accounts for the implicit complement whether or not is it
present in the DAGMC file.
.. versionadded:: 0.13.2
n_surfaces : int
The number of surfaces in the model.
.. versionadded:: 0.13.1
.. versionadded:: 0.13.2
"""

def __init__(self,
Expand Down
7 changes: 4 additions & 3 deletions src/output.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#include "openmc/output.h"

#include <algorithm> // for transform, max
#include <cstring> // for strlen
#include <cstdio> // for stdout
#include <cstring> // for strlen
#include <ctime> // for time, localtime
#include <fstream>
#include <iomanip> // for setw, setprecision, put_time
Expand Down Expand Up @@ -134,9 +134,10 @@ void header(const char* msg, int level)
auto out = header(msg);

// Print header based on verbosity level.
if (settings::verbosity >= level)
if (settings::verbosity >= level) {
fmt::print("\n{}\n\n", out);
std::fflush(stdout);
}
}

//==============================================================================
Expand Down Expand Up @@ -396,7 +397,7 @@ void print_build_info()
fmt::print("DAGMC support: {}\n", dagmc);
fmt::print("libMesh support: {}\n", libmesh);
fmt::print("Coverage testing: {}\n", coverage);
fmt::print("Profiling flags: {}\n", profiling);
fmt::print("Profiling flags: {}\n", profiling);
}
}

Expand Down
3 changes: 2 additions & 1 deletion src/source.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,8 @@ SourceSite IndependentSource::sample(uint64_t* seed) const
auto id = (domain_type_ == DomainType::CELL)
? model::cells[coord.cell]->id_
: model::universes[coord.universe]->id_;
if (found = contains(domain_ids_, id)) break;
if ((found = contains(domain_ids_, id)))
break;
}
}
}
Expand Down
11 changes: 5 additions & 6 deletions src/volume_calc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -225,12 +225,11 @@ vector<VolumeCalculation::Result> VolumeCalculation::execute() const
iterations++;
uint64_t total_samples = iterations * n_samples_;

// warn user if total sample size is greater than what the size_t type can
// warn user if total sample size is greater than what the uin64_t type can
// represent
if (total_samples == UINT64_T_MAX) {
if (total_samples == std::numeric_limits<uint64_t>::max()) {
warning("The number of samples has exceeded the type used to track hits. "
"Volume "
"results may be inaccurate.");
"Volume results may be inaccurate.");
}

// reset
Expand All @@ -246,8 +245,8 @@ vector<VolumeCalculation::Result> VolumeCalculation::execute() const
// Create 2D array to store atoms/uncertainty for each nuclide. Later this
// is compressed into vectors storing only those nuclides that are
// non-zero
auto n_nuc = settings::run_CE ? data::nuclides.size()
: data::mg.nuclides_.size();
auto n_nuc =
settings::run_CE ? data::nuclides.size() : data::mg.nuclides_.size();
xt::xtensor<double, 2> atoms({n_nuc, 2}, 0.0);

#ifdef OPENMC_MPI
Expand Down

0 comments on commit 030f73a

Please sign in to comment.