What’s New in 0.12.0
Summary
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.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
openmc.Material.add_elements_from_formula()method allows a user to create a material based on a chemical formula.openmc.Material.add_element()now supports the enrichment argument for non-uranium elements when only two isotopes are naturally occurring.openmc.Material.add_element()now supports adding elements by name rather than by symbol.The
openmc.Material.get_elements()method returns a list of elements within a material.The
openmc.Material.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_particlesandopenmc.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_scalingattribute.A trigger can now be specified for a volume calculation via the
openmc.VolumeCalculation.set_trigger()method.The
openmc.stats.SphericalIndependentandopenmc.stats.CylindricalIndependentclasses allow a user to specify source distributions based on spherical or cylindrical coordinates.Custom external source distributions can be used via the
openmc.Source.libraryattribute.Unstructured mesh class,
openmc.UnstructuredMesh, that can be used in tallies.The
openmc.CellInstanceFilterclass allows one or more instances of a repeated cell to be tallied. This is effectively a more flexible version of the existingopenmc.DistribcellFilterclass.The
openmc.data.dose_coefficients()function provides effective dose coefficients from ICRP-116 and can be used in conjunction withopenmc.EnergyFunctionFilterin a tally.
Bug Fixes
Contributors
This release contains new contributions from the following people: