What’s New in 0.13.1
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, 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.Operatorclass has been renamedopenmc.deplete.CoupledOperator.The
openmc.deplete.ResultsListclass has been renamed toopenmc.deplete.Resultsand 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_combinedis nowopenmc.StatePoint.keffopenmc.deplete.ResultsList.get_eigenvalueis nowopenmc.deplete.Results.get_keff()
The
openmc.stats.SphericalIndependentclass, which used to accept a distribution forthetanow accepts a distribution forcos_thetainstead 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
debugandoptimizeoptions have been removed; instead, use the standard CMAKE_BUILD_TYPE variable.
New Features
Two new composite surfaces:
openmc.model.IsogonalOctagonandopenmc.model.CylinderSector.The
DAGMCUniverseclass now has abounding_boxattribute and abounding_region()method.When translating a
Regionusing thetranslate()method, there is now aninplaceargument.The
Materialclass 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 materialThe
get_nuclide_atoms()method gives the number of atoms of each nuclide in a material
All mesh classes now have a
volumesproperty that provides the volume of each mesh element as well aswrite_data_to_vtkmethods.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 theSphericalIndependentclass.Univariate distributions in the
openmc.statsmodule now havesample()methods.An
openmc_sample_external_sourcefunction 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
Tracksclass 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 awwinpfile to a list ofWeightWindowsobjects.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.Decayclass now has asourcesproperty that provides radioactive decay source distributions.A
openmc.mgxs.ReducedAbsorptionXSclass 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.