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
Plot
class have changed (color
->color_by
andcol_spec
>colors
).Plot.colors
now accepts a dictionary mappingCell
orMaterial
instances to RGB 3-tuples or string colors names, e.g.:plot.colors = { fuel: 'yellow', water: 'blue' }
-
make_hexagon_region
is nowget_hexagonal_prism
-
Several changes in
Settings
attributes:weight
is now set asSettings.cutoff['weight']
- Shannon entropy is now specified by passing a
Mesh
toSettings.entropy_mesh
- Uniform fission site method is now specified by passing a
Mesh
toSettings.ufs_mesh
- All
sourcepoint_*
options are now specified in aSettings.sourcepoint
dictionary - 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_path
attribute is nowSettings.output['path']
-
All the
openmc.mgxs.Nu*
classes are gone. Instead, anu
argument 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: