OpenMC 0.13.1
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, 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 openmc.deplete.MicroXS
class for managing one-group cross sections. The track file generation capability has been significantly overhauled and a new 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 renamedopenmc.deplete.CoupledOperator
. -
The
openmc.deplete.ResultsList
class has been renamed toopenmc.deplete.Results
and no longer requires you to call thefrom_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 nowopenmc.StatePoint.keff
openmc.deplete.ResultsList.get_eigenvalue
is nowopenmc.deplete.Results.get_keff
-
The
openmc.stats.SphericalIndependent
class, which used to accept a distribution fortheta
now accepts a distribution forcos_theta
instead in order to more easily handle the common case of specifying a uniform spatial distribution over a sphere (also see the newopenmc.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
andoptimize
options have been removed; instead, use the standard CMAKE_BUILD_TYPE variable.
New Features
-
Two new composite surfaces:
openmc.model.IsogonalOctagon
andopenmc.model.CylinderSector
. -
The
DAGMCUniverse
class now has abounding_box
attribute and abounding_region
method. -
When translating a
Region
using thetranslate
method, there is now aninplace
argument. -
The
Material
class has several new methods and attributes:- The
add_components
methods allows you to add multiple nuclides/elements to a material with a single call by passing a dictionary. - The
get_activity
method returns the activity of a material in Bq, Bq/g, or Bq/cm³. - The
remove_element
method removes an element from a material - The
get_nuclide_atoms
method gives the number of atoms of each nuclide in a material
- The
-
All mesh classes now have a
volumes
property that provides the volume of each mesh element as well aswrite_data_to_vtk
methods. -
Support for externally managed MOAB meshes or libMesh meshes.
-
Multiple discrete distributions can be merged with the new
openmc.stats.Discrete.merge
method. -
The
openmc.stats.spherical_uniform
function creates a uniform distribution over a sphere using theSphericalIndependent
class. -
Univariate distributions in the
openmc.stats
module now havesample()
methods. -
An
openmc_sample_external_source
function has been added to the C API with a corresponding Python bindingopenmc.lib.sample_external_source
. -
The track file generation capability has been completely overhauled. Track files now include much more information, and a new
openmc.Tracks
class allows access to track file information from the Python API and has awrite_to_vtk
method for writing a VTK file. Multiple tracks are now written to a single file (one per MPI rank). -
A new
openmc.wwinp_to_wws
function that converts weight windows from awwinp
file to a list ofWeightWindows
objects. -
The new
openmc.EnergyFilter.from_group_structure
method provides a way of creating an energy filter with a group structure identified by name. -
The
openmc.data.Decay
class now has asources
property that provides radioactive decay source distributions. -
A
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
- Fix bug for spherical mesh string repr
- Fix package_data specification to include pyx files
- Allow meshes with same ID to appear in multiple files
- Fix overwritten variable in get_libraries_from_xsdata
- Write output files to correct directory
- Allow CMake to properly find third-party packages
- Fix Region.from_expression when ")(" appears in specification
- Move lost particle reset from finalize() to reset()
- Minor typo fixes in test_lattice.py
- Fix color assignment in Universe.plot
- Several depletion-related fixes
- Allow control of C++ standard used by compiler
- Fix IO format documentation for surface source read/write
- Make sure basis gets set in Plot.from_geometry
- Improve robustness of torus distance calculation
- Allow use of redundant fission when adjusting KERMA in from_njoy
- Disable GNU extensions for CMake target
- Two from_xml fixes
- Fix for rare infinite loop when finding cell
- Allow photon heating to be tallied by nuclide
- Use UTF-8 encoding when reading dose coefficients
- Fix a corner case in Region.from_expression
- Fix bug in spherical and cylindrical meshes
- Ensure weight window bounds are flattened when writing to XML
- Fix for std::cout sync bug in output.cpp
- Allow compiling against fmt v9
- Fix TimeFilter for small time intervals