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.

Bug Fixes

Contributors

This release contains new contributions from the following people: