What’s New in 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 renamed openmc.deplete.CoupledOperator.

  • The openmc.deplete.ResultsList class has been renamed to 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:

  • The 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 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














    The debug and optimize options have been removed; instead, use the standard CMAKE_BUILD_TYPE variable.

New Features

  • Two new composite surfaces: openmc.model.IsogonalOctagon and openmc.model.CylinderSector.

  • The DAGMCUniverse class now has a bounding_box attribute and a bounding_region() method.

  • When translating a Region using the translate() method, there is now an inplace 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

  • 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 merge() method.

  • The openmc.stats.spherical_uniform() function creates a uniform distribution over a sphere using the SphericalIndependent class.

  • Univariate distributions in the 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 openmc.lib.sample_external_source().

  • The track file generation capability has been completely overhauled. Track files now include much more information, and a new Tracks class allows access to track file information from the Python API and has a write_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 a wwinp file to a list of WeightWindows 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 a sources 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