OpenMC 0.9.0
This release of OpenMC is the first release to use a new native HDF5 cross section format rather than ACE format cross sections. Other significant new features include a nuclear data interface in the Python API (openmc.data) a stochastic volume calculation capability, a random sphere packing algorithm that can handle packing fractions up to 60%, and a new XML parser with significantly better performance than the parser used previously.
CAUTION: With the new cross section format, the default energy units are now electronvolts (eV) rather than megaelectronvolts (MeV)! If you are specifying an energy filter for a tally, make sure you use units of eV now.
The Python API continues to improve over time; several backwards incompatible changes were made in the API which users of previous versions should take note of:
-
Each type of tally filter is now specified with a separate class. For example:
energy_filter = openmc.EnergyFilter([0.0, 0.625, 4.0, 1.0e6, 20.0e6])
-
Several attributes of the
Plotclass have changed (color->color_byandcol_spec>colors).Plot.colorsnow accepts a dictionary mappingCellorMaterialinstances to RGB 3-tuples or string colors names, e.g.:plot.colors = { fuel: 'yellow', water: 'blue' } -
make_hexagon_regionis nowget_hexagonal_prism -
Several changes in
Settingsattributes:weightis now set asSettings.cutoff['weight']- Shannon entropy is now specified by passing a
MeshtoSettings.entropy_mesh - Uniform fission site method is now specified by passing a
MeshtoSettings.ufs_mesh - All
sourcepoint_*options are now specified in aSettings.sourcepointdictionary - Resonance scattering method is now specified as a dictionary in
Settings.resonance_scattering - Multipole is now turned on by setting
Settings.temperature['multipole'] = True - The
output_pathattribute is nowSettings.output['path']
-
All the
openmc.mgxs.Nu*classes are gone. Instead, anuargument was added to the constructor of the corresponding classes.
New Features
- Stochastic volume calculations
- Multi-delayed group cross section generation
- Ability to calculate multi-group cross sections over meshes
- Temperature interpolation on cross section data
- Nuclear data interface in Python API,
openmc.data - Allow cutoff energy via
Settings.cutoff - Ability to define fuel by enrichment (see
Material.add_element) - Random sphere packing for TRISO particle generation,
openmc.model.pack_trisos - Critical eigenvalue search,
openmc.search_for_keff - Model container,
openmc.model.Model - In-line plotting in Jupyter,
openmc.plot_inline - Energy function tally filters,
openmc.EnergyFunctionFilter - Replaced FoX XML parser with pugixml
- Cell/material instance counting,
Geometry.determine_paths - Differential tallies (see
openmc.TallyDerivative) - Consistent multi-group scattering matrices
- Improved documentation and new Jupyter notebooks
- OpenMOC compatibility module,
openmc.openmoc_compatible
Bug Fixes
- c5df6ce Fix mesh filter max iterator check
- 1cfa392 Reject external source only if 95% of sites are rejected
- 3353592 Fix bug in plotting meshlines
- 17c678d Make sure system_clock uses high-resolution timer
- 23ec0b8 Fix use of S(a,b) with multipole data
- 7eefb73 Fix several bugs in tally module
- 7880d4f Allow plotting calculation with no boundary conditions
- ad2d9ff Fix filter weight missing when scoring all nuclides
- 59fdcac Fix use of source files for fixed source calculations
- 9eff5b8 Fix thermal scattering bugs
- 7848a97 Fix combined k-eff estimator producing NaN
- f139ce8 Fix printing bug for tallies with AggregateNuclide
- b8ddfac Bugfix for short tracks near tally mesh edges
- ec3cfb5 Fix inconsistency in filter weights
- 5e9b06a Fix XML representation for verbosity
- c39990a Fix bug tallying reaction rates with multipole on
- c6b67e6 Fix fissionable source sampling bug
- 4895402 Check for void materials in tracklength tallies
- f0214f4 Fixes/improvements to the ARES algorithm
Contributors
This release contains new contributions from the following people: