OpenMC 0.12.0
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
rotatemethod 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.RightCircularCylinderopenmc.model.RectangularParallelepipedopenmc.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
solverargument on depletion integrator classes. - The
openmc.deplete.Chain.reducemethod 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_atomsnow allows a user to obtain depleted material compositions in atom/b-cm.
- The matrix exponential solver can now be configured through the
-
Several new methods on
openmc.Material:- The
add_elements_from_formulamethod allows a user to create a material based on a chemical formula. add_elementnow supports theenrichmentargument for non-uranium elements when only two isotopes are naturally occurring.add_elementnow supports adding elements by name rather than by symbol.- The
get_elementsmethod returns a list of elements within a material. - The
mix_materialsmethod allows multiple materials to be mixed together based on atom, weight, or volume fractions.
- The
-
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_triggermethod. -
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_coefficientsfunction provides effective dose coefficients from ICRP-116 and can be used in conjunction withopenmc.EnergyFunctionFilterin a tally.
Bug fixes
- Keep user-supplied prev_results on operator
- Fix bug when S(a,b) tables appear in depletable material
- DAGMC fix for implicit complement material assignment
- Bug fix for tallying reaction rates in coupled n-p runs
- Corrected issue with multiplicity matrix
- Fix depletion with photon transport
- Fix secondary photon creation
- Bug fix for total xs plotting
- Account for light nuclide production in depletion
- Reset timer in depletion calculations
- Fix for Model.run
- Ensure NJOY output goes to specified directory
- Fix bug preventing creating photon data
- Fix bug when surface ID > 999999
- Fix bug for reading output settings in Settings.from_xml
- Fix improve energy deposition for coupled neutron-photon
- Use number of particles for tally normalization
- Fix a number of problems related to photoatomic data
- Fix cosine smearing for S(a,b)
- Use relative distances for coincidence test in hex lattice
- Fix RPATH for non-Debian linux systems
- Fix mesh plotter energy filter bins
- Fix memory leak
- Fix volume allocation related to burnable materials
- Fix tally mesh bug for short tracks
- DAGMC void material assignment fix
- Fix for Mesh
__repr__methods
Contributors
This release contains new contributions from the following people:
- @ChasingNeutrons
- @stevendargaville
- @makeclean
- @dryuri92
- @GiudGiud
- @awgolas
- @NuclearEngideer
- @smharper
- @YuanHu-PKU-KIT
- @kingyue737
- @drewejohnson
- @Mikolaj-A-Kowalski
- @shikhar413
- @liangjg
- @davidjohnlong
- @amandalund
- @alex-lyons
- @nelsonag
- @eepeterson
- @SamPUG
- @AI-Pranto
- @simondrichards
- @gridley
- @paulromano
- @shimwell
- @pshriwise
- @jtramm
- @gonuke
- @rockfool