What’s New in 0.12.1

Summary

This release of OpenMC includes an assortment of new features and many bug fixes. The openmc.deplete module incorporates a number of improvements in usability, accuracy, and performance. Other enhancements include generalized rotational periodic boundary conditions, expanded source modeling capabilities, and a capability to generate windowed multipole library files from ENDF files.

New Features

  • Boundary conditions have been refactored and generalized. Rotational periodic boundary conditions can now be applied to any N-fold symmetric geometry.
  • External source distributions have been refactored and extended. Users writing their own C++ custom sources need to write a class that derives from openmc::Source. These changes have enabled new functionality, such as:
    • Mixing more than one custom source library together
    • Mixing a normal source with a custom source
    • Using a file-based source for fixed source simulations
    • Using a file-based source for eigenvalue simulations even when the number of particles doesn’t match
  • New capability to read and write a source file based on particles that cross a surface (known as a “surface source”).
  • Various improvements related to depletion:
    • Reactions used in a depletion chain can now be configured through the reactions argument to openmc.deplete.Chain.from_endf().
    • Specifying a power of zero during a depletion simulation no longer results in an unnecessary transport solve.
    • Reaction rates can be computed either directly or using multigroup flux tallies that are used to collapse reaction rates afterward. This is enabled through the reaction_rate_mode and reaction_rate_opts to openmc.deplete.Operator.
    • Depletion results can be used to create a new openmc.Materials object using the openmc.deplete.ResultsList.export_to_materials() method.
  • Multigroup current and diffusion cross sections can be generated through the openmc.mgxs.Current and openmc.mgxs.DiffusionCoefficient classes.
  • Added openmc.data.isotopes() function that returns a list of naturally occurring isotopes for a given element.
  • Windowed multipole libraries can now be generated directly from the Python API using openmc.data.WindowedMultipole.from_endf().
  • The new openmc.write_source_file() function allows source files to be generated programmatically.