Skip to content

OpenMC 0.12.0

Compare
Choose a tag to compare
@paulromano paulromano released this 22 Jul 20:22
· 4157 commits to develop since this release
93d6165

This release of OpenMC includes an assortment of new features and many bug fixes. In particular, the openmc.deplete module has been heavily tested which has resulted in a number of usability improvements, bug fixes, and other enhancements. Energy deposition calculations, particularly for coupled neutron-photon simulations, have been improved as well.

Improvements in modeling capabilities continue to be added to the code, including the ability to rotate surfaces in the Python API, several new "composite" surfaces, a variety of new methods on openmc.Material, unstructured mesh tallies that leverage the existing DAGMC infrastructure, effective dose coefficients from ICRP-116, and a new cell instance tally filter.

New Features

  • All surfaces now have a rotate method that allows them to be rotated.

  • Several "composite" surfaces, which are actually composed of multiple surfaces but can be treated as a normal surface through the -/+ unary operators, have been added. These include:

    • openmc.model.RightCircularCylinder
    • openmc.model.RectangularParallelepiped
    • openmc.model.XConeOneSided (and equivalent versions for y- and z-axes)
  • Various improvements related to depletion:

    • The matrix exponential solver can now be configured through the solver argument on depletion integrator classes.
    • The openmc.deplete.Chain.reduce method can automatically reduce the number of nuclides in a depletion chain.
    • Depletion integrator classes now allow a user to specify timesteps in several units (s, min, h, d, MWd/kg).
    • openmc.deplete.ResultsList.get_atoms now allows a user to obtain depleted material compositions in atom/b-cm.
  • Several new methods on openmc.Material:

    • The add_elements_from_formula method allows a user to create a material based on a chemical formula.
    • add_element now supports the enrichment argument for non-uranium elements when only two isotopes are naturally occurring.
    • add_element now supports adding elements by name rather than by symbol.
    • The get_elements method returns a list of elements within a material.
    • The mix_materials method allows multiple materials to be mixed together based on atom, weight, or volume fractions.
  • The acceptable number of lost particles can now be configured through openmc.Settings.max_lost_particles and openmc.Settings.rel_max_lost_particles.

  • Delayed photons produced from fission are now accounted for by default by scaling the yield of prompt fission photons. This behavior can be modified through the openmc.Settings.delayed_photon_scaling attribute.

  • A trigger can now be specified for a volume calculation via the openmc.VolumeCalculation.set_trigger method.

  • The openmc.stats.SphericalIndependent and openmc.stats.CylindricalIndependent classes allow a user to specify source distributions based on spherical or cylindrical coordinates.

  • Custom external source distributions can be used via the openmc.Source.library attribute.

  • Unstructured mesh class, openmc.UnstructuredMesh, that can be used in tallies.

  • The openmc.CellInstanceFilter class allows one or more instances of a repeated cell to be tallied. This is effectively a more flexible version of the existing openmc.DistribcellFilter class.

  • The openmc.data.dose_coefficients function provides effective dose coefficients from ICRP-116 and can be used in conjunction with openmc.EnergyFunctionFilter in a tally.

Bug fixes

Contributors

This release contains new contributions from the following people: