Openmc Versions Save

OpenMC Monte Carlo Code

v0.9.0

7 years ago

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 and col_spec > colors). Plot.colors now accepts a dictionary mapping Cell or Material instances to RGB 3-tuples or string colors names, e.g.:

    plot.colors = {
        fuel: 'yellow',
        water: 'blue'
    }
    
  • make_hexagon_region is now get_hexagonal_prism

  • Several changes in Settings attributes:

    • weight is now set as Settings.cutoff['weight']
    • Shannon entropy is now specified by passing a Mesh to Settings.entropy_mesh
    • Uniform fission site method is now specified by passing a Mesh to Settings.ufs_mesh
    • All sourcepoint_* options are now specified in a Settings.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 now Settings.output['path']
  • All the openmc.mgxs.Nu* classes are gone. Instead, a nu argument was added to the constructor of the corresponding classes.

New Features

Bug Fixes

  • c5df6ce146abeee0d83447aa7a1deccf354b9ade Fix mesh filter max iterator check
  • 1cfa392bb0580b584643927fb3e57f43f28b9f12 Reject external source only if 95% of sites are rejected
  • 3353592cb6092f9d0341e1a0393cedca778aefaf Fix bug in plotting meshlines
  • 17c678d9f8f797a2d558162107c8eb49dded714f Make sure system_clock uses high-resolution timer
  • 23ec0b89bb58a10017d56e651415886ac35a1c6b Fix use of S(a,b) with multipole data
  • 7eefb7306ff0f8745af1447789d8cddc9778617f Fix several bugs in tally module
  • 7880d4f2461a945a99ffd4fb5a88a92191a06f5c Allow plotting calculation with no boundary conditions
  • ad2d9fff55860625f576b9589bd334b80acee337 Fix filter weight missing when scoring all nuclides
  • 59fdcac2a91887cf5ce3960980d79f086ab51ae0 Fix use of source files for fixed source calculations
  • 9eff5b8a2ead933a6d9839b8c473fd5c82922f59 Fix thermal scattering bugs
  • 7848a97edcdb05bee7b8424568c75a6900b068ab Fix combined k-eff estimator producing NaN
  • f139ce8dc12ae036e73ddf46c9ed5ba1a563be1c Fix printing bug for tallies with AggregateNuclide
  • b8ddfacaf34aedf689cfef26ae954cf6025e1dda Bugfix for short tracks near tally mesh edges
  • ec3cfb5bab75b67f0a86ab63cf08073305cd9663 Fix inconsistency in filter weights
  • 5e9b06a861d4f596314eff490ad63c051f833f3a Fix XML representation for verbosity
  • c39990accb6d0377fc05f004b0809d08e7a7f384 Fix bug tallying reaction rates with multipole on
  • c6b67e64434c15483a26733eadbb7335b10be7ea Fix fissionable source sampling bug
  • 48954027704d1413f62addf11bfdd072b33713fc Check for void materials in tracklength tallies
  • f0214f4c12450c82788ed0546379d9bcae3174f2 Fixes/improvements to the ARES algorithm

Contributors

This release contains new contributions from the following people:

  • @wbinventor
  • @smharper
  • @QingmingHe
  • @cjosey
  • @tjlaboss
  • @liangjg
  • @amandalund
  • @nelsonag
  • @paulromano
  • @samuelshaner
  • @walshjon

v0.8.0

7 years ago

This release of OpenMC includes a few new major features including the capability to perform neutron transport with multi-group cross section data as well as experimental support for the windowed multipole method being developed at MIT. Source sampling options have also been expanded significantly, with the option to supply arbitrary tabular and discrete distributions for energy, angle, and spatial coordinates.

The Python API has been significantly restructured in this release compared to version 0.7.1. Any scripts written based on the version 0.7.1 API will likely need to be rewritten. Some of the most visible changes include the following:

  • SettingsFile is now Settings, MaterialsFile is now Materials, and TalliesFile is now Tallies.
  • The GeometryFile class no longer exists and is replaced by the Geometry class which now has an export_to_xml()` method.
  • Source distributions are defined using the Source class and assigned to the Settings.source property.
  • The Executor class no longer exists and is replaced by openmc.run()and openmc.plot_geometry() functions.

The Python API documentation has also been significantly expanded.

New Features

  • Multi-group mode
  • Vast improvements to the Python API
  • Experimental windowed multipole capability
  • Periodic boundary conditions
  • Expanded source sampling options
  • Distributed materials
  • Subcritical multiplication support
  • Improved method for reproducible URR table sampling
  • Refactor of continuous-energy reaction data
  • Improved documentation and new Jupyter notebooks

Bug Fixes

  • 70daa76e0e9d0bd8163e5c9d306788dbd7cf30c6 Make sure MT=3 cross section is not used
  • 40b05fe94e16731703ca758a55953d62f353fc7a Ensure source bank is resampled for fixed source runs
  • 9586ed3c0718ce5fbfdacc551966a4de9e64fb42 Fix two hexagonal lattice bugs
  • a855e8f1b04f3983b699422c9d938d21f2f3315c Make sure graphite models don't error out on max events
  • 7294a1363485c64b4ee7cb1a5a8e4f0bb67d8ec7 Fix incorrect check on cmfd.xml
  • 12f2467d6e3f529dba3ad8f88f11fb04588246bd Ensure number of realizations is written to statepoint
  • 0227f4823080a686e8130df065762d8d855d6f3d Fix bug when sampling multiple energy distributions
  • 51deaa7cbf4a5bc06bb9ddc0dd2beef830115333 Prevent segfault when user specifies '18' on tally scores
  • fed74b8d761b5baca0f776cdb61fef15a8f8bdf8 Prevent duplicate tally scores
  • 8467aea4e3e019d13ca8127c2dd84de7858348dc Better threshold for allowable lost particles
  • 493c6fd9ccb9d1e23516ba83b24249fb1d4ccba7 Fix type of return argument for h5pget_driver_f

Contributors

This release contains new contributions from the following people:

  • @wbinventor
  • @friedmud
  • @smharper
  • @cjosey
  • @liangjg
  • @nelsonag
  • @paulromano
  • @kellyrowland
  • @samuelshaner

v0.7.1

8 years ago

This release of OpenMC provides some substantial improvements over version 0.7.0. Non-simple cell regions can now be defined through the | (union) and ~ (complement) operators. Similar changes in the Python API also allow complex cell regions to be defined. A true secondary particle bank now exists; this is crucial for photon transport (to be added in the next minor release). A rich API for multi-group cross section generation has been added via the openmc.mgxs Python module.

Various improvements to tallies have also been made. It is now possible to explicitly specify that a collision estimator be used in a tally. A new delayedgroup filter and delayed-nu-fission score allow a user to obtain delayed fission neutron production rates filtered by delayed group. Finally, the new inverse-velocity score may be useful for calculating kinetics parameters.

Caution! In previous versions, depending on how OpenMC was compiled binary output was either given in HDF5 or a flat binary format. With this version, all binary output is now HDF5 which means you must have HDF5 in order to install OpenMC. Please consult the user's guide for instructions on how to compile with HDF5.

New Features

  • Support for complex cell regions (union and complement operators)
  • Generic quadric surface type
  • Improved handling of secondary particles
  • Binary output is now solely HDF5
  • openmc.mgxs Python module enabling multi-group cross section generation
  • Collision estimator for tallies
  • Delayed fission neutron production tallies with ability to filter by delayed group
  • Inverse velocity tally score
  • Performance improvements for binary search
  • Performance improvements for reaction rate tallies

Bug Fixes

  • 2993228a12db933da376c0d8b9c63b9f99d60359 Bug with material filter when void material present
  • d748406f20e52d74df5ae5c567d3cf7ce19bfeb6 Fix triggers on tallies with multiple filters
  • c29a811f3e7dc8fe62e0341ab3df4d86696649a0 Correctly handle maximum transport energy
  • 3edc2389e588f4f2348c00105a4fb067dbb54364 Fixes in the nu-scatter score
  • 629e3b21569d990e00f76ca93a79366ab511816a Assume unspecified surface coefficients are zero in Python API
  • 5dbe8b75db638b28b1d1714a47cc16b879061b36 Fix energy filters for openmc-plot-mesh-tally
  • ff66f41d89fcb5dcd4b9c523bdfcc741d6bd4025 Fixes in the openmc-plot-mesh-tally script
  • 441fd4f00dfb3cd6f79abc0ad2887b04dd5dbfd8 Fix bug in kappa-fission score
  • 7e5974a23356c4c9fc547a64ee483acda1fc34ea Allow fixed source simulations from Python API

Contributors

This release contains new contributions from the following people:

  • @bhermanmit
  • @cjosey
  • @kellyrowland
  • @nelsonag
  • @paulromano
  • @samuelshaner
  • @smharper
  • @walshjon
  • @wbinventor

v0.7.0

8 years ago

New Features

  • Complete Python API
  • Python 3 compatability for all scripts
  • All scripts consistently named openmc-* and installed together
  • New 'distribcell' tally filter for repeated cells
  • Ability to specify outer lattice universe
  • XML input validation utility (openmc-validate-xml)
  • Support for hexagonal lattices
  • Material union energy grid method
  • Tally triggers
  • Remove dependence on PETSc
  • Significant OpenMP performance improvements
  • Support for Fortran 2008 MPI interface
  • Use of Travis CI for continuous integration
  • Simplifications and improvements to test suite

Bug Fixes

  • b5f71255a3d4f8aef14809ad99ce6a9182a93409 Fix bug in spherical harmonics tallies
  • e6675b7d1e7b8d9b2d749443b2fd21d02e34bd4a Ensure all constants are double precision
  • 04e2c1960b76ca6151402f22eb28ff0f446efa31 Fix potential bug in sample_nuclide routine
  • 6121d97975d7aaafb06f5c77906049ecb211c6c6 Fix bugs related to particle track files
  • 2f0e89508a1ebe13d46c1f43e445533a6e6fb791 Fixes for nuclide specification in tallies

Contributors

This release contains new contributions from the following people:

  • @bhermanmit
  • @cjosey
  • @mellis13
  • @nelsonag
  • @nhorelik
  • @PaleNeutron
  • @paulromano
  • @scopatz
  • @smharper
  • @walshjon
  • @wbinventor

v0.6.2

9 years ago

New Features

  • Meshline plotting capability
  • Support for plotting cells/materials on middle universe levels
  • Ability to model cells with no surfaces
  • Compatibility with PETSc 3.5
  • Compatability with OpenMPI 1.7/1.8
  • Improved overall performance via logarithmic-mapped energy grid search
  • Improved multi-threaded performance with atomic operations
  • Support for fixed source problems with fissionable materials

Bug Fixes

  • 26fb936f2a086ec0a6157a9eedb2d6adfbb15936 Fix problem with -t, --track command-line flag
  • 2f07c0371eaa0a12fca28da9cf49120c19c61e49 Improved evaporation spectrum algorithm
  • e6abb9d57341951754e912f8137257350bf3cca8 Fix segfault when tallying in a void material
  • 291b45a6469389db3c38e78e0c6c0d3886c5c312 Handle metastable nuclides in NNDC data and multiplicities in MT=5 data

Contributors

This release contains new contributions from the following people:

  • @bhermanmit
  • @bunder
  • @jdangerx
  • @mellis13
  • @nelsonag
  • @nhorelik
  • @paulromano
  • @smharper
  • @walshjon
  • @wbinventor

v0.6.1

9 years ago

New Features

  • Coarse mesh finite difference (CMFD) acceleration no longer requires PETSc
  • Statepoint file numbering is now zero-padded
  • Python scripts now compatible with Python 2 or 3
  • Ability to run particle restarts in fixed source calculations
  • Capability to filter box source by fissionable materials
  • Nuclide/element names are now case insensitive in input files
  • Improved treatment of resonance scattering for heavy nuclides

Bug Fixes

  • 03e890313dc9129954c78f77efca0214b7680d9f Check for energy-dependent multiplicities in ACE files
  • 4439de571fe30fc26211018f94535e17b610c9f8 Fix distance-to-surface calculation for general plane surface
  • 5808ed4c2df9ca8dfbcb8dcb8fd2982d99d2bf8a Account for differences in URR band probabilities at different energies
  • 2e60c0ea6162a3961b4009a49ba67f1ed0bc0371 Allow zero atom/weight percents in materials
  • 3e0870ac96988e5408741f05a356f1648de62f9d Don't use PWD environment variable when setting path to input files
  • dc47763f66d7bc9373e385935199efe03fef13cc Handle probability table resampling correctly
  • 01178bf08a3667a83c0b073ef63f41907ac2dd28 Fix metastables nuclides in NNDC cross_sections.xml file
  • 62ec431e3be5e77b1ba9343935110190d7bc6358 Don't read tallies.xml when OpenMC is run in plotting mode
  • 2a95ef7a425af3b498fd95afe3ef7917efea33fe Prevent segmentation fault on "current" score without mesh filter
  • 93e4823641e12b880a3b9bda7301c72254f165a3 Check for negative values in probability tables
  • 9d32299e4dec2cb9649b53de5eb5c64c223674f4 Ensure installation of Python modules goes into correct directory

Contributors

This release contains new contributions from the following people:

  • @bhermanmit
  • @nelsonag
  • @paulromano
  • @smharper
  • @walshjon
  • @wbinventor

v0.6.0

9 years ago

New Features

  • Legendre and spherical harmonic expansion tally scores
  • CMake is now default build system
  • Regression test suite based on CTests and NNDC cross sections
  • FoX is now a git submodule
  • Support for older cross sections (e.g. MCNP 66c)
  • Progress bar for plots
  • Expanded support for natural elements via <natural_elements> in settings.xml

Bug Fixes

  • 41f7cabe848ac46b0ac8ba108300c195679f8d66 Fixed erroneous results from survival biasing
  • 038736f695d3318164866b4f910b154867f2ccb9 Fix tallies over void materials
  • 46f9e85ce3feca51f53203672b6c2e72998c8b57 Check for negative values in probability tables
  • d1ca3519f2c56e400311ed9d6fde91f62512da0b Fixed sampling of angular distribution
  • 0291c0f047861629eaefb02a98d4ac9ee4471f38 Fixed indexing error in plotting
  • d7a7d0f45c26d41dd772de204490b47bec2e27c5 Fix bug with specifying xs attribute
  • 85b3cbd82a8c72c426cfba489026a66a4d442531 Fix out-of-bounds error with OpenMP threading

Contributors

This release contains new contributions from the following people:

  • @bhermanmit
  • @nelsonag
  • @nhorelik
  • @paulromano
  • @smharper
  • @walshjon

v0.5.4

10 years ago

New Features

  • Source sites outside geometry are resampled
  • XML-Fortran backed replaced by FoX XML
  • Ability to write particle track files
  • Handle lost particles more gracefully (via particle track files)
  • Multiple random number generator streams
  • Mesh tally plotting utility converted to use Tkinter rather than PyQt
  • Script added to download ACE data from NNDC
  • Mixed ASCII/binary cross_sections.xml now allowed
  • Expanded options for writing source bank
  • Re-enabled ability to use source file as starting source
  • S(a,b) recalculation avoided when same nuclide and S(a,b) table are accessed

Bug Fixes

  • 32c03c44ae666702f4252c82249771763f1d6551 Check for valid data in cross_sections.xml
  • c71ef57ddc4bf0dc5632fb259ccee8e56caa8855 Fix bug in statepoint.py
  • 8884fb9e3f1657b2b5e0c5b4e8e4a3af5adfbe68 Check for all ZAIDs for S(a,b) tables
  • b38af09b8201e982d77c9ce51b057f78c182d157 Fix XML reading on multiple levels of input
  • d28750c34fdec59b3ce955865299eafe980cba16 Fix bug in convert_xsdir.py
  • cf567cae7d2f8c5325f4696201c5574058cd7393 ENDF/B-VI data checked for compatibility
  • 6b94613c24b127ad31fedf60e9a647e459223636 Fix p_valid sampling inside of sample_energy

Contributors

This release contains new contributions from the following people:

  • @bhermanmit
  • @nelsonag
  • @nhorelik
  • @paulromano
  • @smharper
  • @tpviitan
  • @walshjon

v0.5.3

10 years ago

New Features

  • Output interface enhanced to allow multiple files handles to be opened
  • Particle restart file linked to output interface
  • Particle restarts and state point restarts are both identified with the -r command line flag.
  • Particle instance no longer global, passed to all physics routines
  • Physics routines refactored to rely less on global memory, more arguments passed in
  • CMFD routines refactored and now can compute dominance ratio on the fly
  • PETSc 3.4.2 or higher must be used and compiled with fortran datatype support
  • Memory leaks fixed except for ones from xml-fortran package
  • Test suite enhanced to test output with different compiler options
  • Description of OpenMC development workflow added
  • OpenMP shared-memory parallelism added
  • Special run mode --tallies removed.

Bug Fixes

  • Normalize direction vector after reflecting particle.
  • Set blank default for cross section listing alias.
  • Fix infinite loop with words greater than 80 characters in write_message.
  • Check for valid secondary mode on S(a,b) tables.
  • Fix bug where last process could have zero particles.