Tags give the ability to mark specific points in history as being important
  • v0.10.0
    Release v0.10.0

    This release of OpenMC includes several new features, performance improvements, and bug fixes compared to version 0.9.0. Notably, a C API has been added that enables in-memory coupling of neutronics to other physics fields, e.g., burnup calculations and thermal-hydraulics. The C API is also backed by Python bindings in a new openmc.capi package. Users should be forewarned that the C API is still in an experimental state and the interface is likely to undergo changes in future versions.

    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:

    • To indicate that nuclides in a material should be treated such that elastic scattering is isotropic in the laboratory system, there is a new Material.isotropic property:

      mat = openmc.Material()
      mat.add_nuclide('H1', 1.0)
      mat.isotropic = ['H1']

      To treat all nuclides in a material this way, the Material.make_isotropic_in_lab method can still be used.

    • The initializers for openmc.Intersection and openmc.Union now expect an iterable.

    • Auto-generated unique IDs for classes now start from 1 rather than 10000.

    NOTE: This is the last release of OpenMC that will support Python 2.7. Future releases of OpenMC will require Python 3.4 or later.

    New Features

    • Rotationally-periodic boundary conditions
    • C API (with Python bindings) for in-memory coupling
    • Improved correlation for Uranium enrichment
    • Support for partial S(a,b) tables
    • Improved handling of autogenerated IDs
    • Many performance/memory improvements

    Bug Fixes

    • 93746953 Fix energy group sampling for multi-group simulations
    • a149ef42 Ensure mutable objects are not hashable
    • 2c9b2104 Preserve backwards compatibility for generated HDF5 libraries
    • 8047f6c1 Handle units of division for tally arithmetic correctly
    • 0beb4cb9 Compatibility with newer versions of Pandas
    • f124becb Fix generating 0K data with openmc.data.njoy module
    • 0c691536 Bugfix for generating thermal scattering data
    • 61ecb475 Fix bugs in Python multipole objects

    Contributors

    This release contains new contributions from the following people:

    • @brbass
    • @wbinventor
    • @GiudGiud
    • @graybri3
    • @smharper
    • @cjosey
    • @tjlaboss
    • @liangjg
    • @lindsayad
    • @johnnyliu27
    • @amandalund
    • @aprilnovak
    • @nelsonag
    • @salcedop
    • @paulromano
    • @samuelshaner
  • v0.9.0
    Release v0.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 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

    • c5df6ce1 Fix mesh filter max iterator check
    • 1cfa392b Reject external source only if 95% of sites are rejected
    • 3353592c Fix bug in plotting meshlines
    • 17c678d9 Make sure system_clock uses high-resolution timer
    • 23ec0b89 Fix use of S(a,b) with multipole data
    • 7eefb730 Fix several bugs in tally module
    • 7880d4f2 Allow plotting calculation with no boundary conditions
    • ad2d9fff Fix filter weight missing when scoring all nuclides
    • 59fdcac2 Fix use of source files for fixed source calculations
    • 9eff5b8a Fix thermal scattering bugs
    • 7848a97e Fix combined k-eff estimator producing NaN
    • f139ce8d Fix printing bug for tallies with AggregateNuclide
    • b8ddfaca Bugfix for short tracks near tally mesh edges
    • ec3cfb5b Fix inconsistency in filter weights
    • 5e9b06a8 Fix XML representation for verbosity
    • c39990ac Fix bug tallying reaction rates with multipole on
    • c6b67e64 Fix fissionable source sampling bug
    • 48954027 Check for void materials in tracklength tallies
    • f0214f4c Fixes/improvements to the ARES algorithm

    Contributors

    This release contains new contributions from the following people:

  • v0.8.0
    Release v0.8.0

    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

    • 70daa76e Make sure MT=3 cross section is not used
    • 40b05fe9 Ensure source bank is resampled for fixed source runs
    • 9586ed3c Fix two hexagonal lattice bugs
    • a855e8f1 Make sure graphite models don't error out on max events
    • 7294a136 Fix incorrect check on cmfd.xml
    • 12f2467d Ensure number of realizations is written to statepoint
    • 0227f482 Fix bug when sampling multiple energy distributions
    • 51deaa7c Prevent segfault when user specifies '18' on tally scores
    • fed74b8d Prevent duplicate tally scores
    • 8467aea4 Better threshold for allowable lost particles
    • 493c6fd9 Fix type of return argument for h5pget_driver_f

    Contributors

    This release contains new contributions from the following people:

  • v0.7.1
    Release v0.7.1

    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

    • 2993228a Bug with material filter when void material present
    • d748406f Fix triggers on tallies with multiple filters
    • c29a811f Correctly handle maximum transport energy
    • 3edc2389 Fixes in the nu-scatter score
    • 629e3b21 Assume unspecified surface coefficients are zero in Python API
    • 5dbe8b75 Fix energy filters for openmc-plot-mesh-tally
    • ff66f41d Fixes in the openmc-plot-mesh-tally script
    • 441fd4f0 Fix bug in kappa-fission score
    • 7e5974a2 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
    Release v0.7.0

    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

    • b5f71255 Fix bug in spherical harmonics tallies
    • e6675b7d Ensure all constants are double precision
    • 04e2c196 Fix potential bug in sample_nuclide routine
    • 6121d979 Fix bugs related to particle track files
    • 2f0e8950 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
    Release v0.6.2

    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

    • 26fb936f Fix problem with -t, --track command-line flag
    • 2f07c037 Improved evaporation spectrum algorithm
    • e6abb9d5 Fix segfault when tallying in a void material
    • 291b45a6 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
    Release v0.6.1

    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

    • 03e89031 Check for energy-dependent multiplicities in ACE files
    • 4439de57 Fix distance-to-surface calculation for general plane surface
    • 5808ed4c Account for differences in URR band probabilities at different energies
    • 2e60c0ea Allow zero atom/weight percents in materials
    • 3e0870ac Don't use PWD environment variable when setting path to input files
    • dc47763f Handle probability table resampling correctly
    • 01178bf0 Fix metastables nuclides in NNDC cross_sections.xml file
    • 62ec431e Don't read tallies.xml when OpenMC is run in plotting mode
    • 2a95ef7a Prevent segmentation fault on "current" score without mesh filter
    • 93e48236 Check for negative values in probability tables
    • 9d32299e 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
    Release v0.6.0

    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

    • 41f7cabe Fixed erroneous results from survival biasing
    • 038736f6 Fix tallies over void materials
    • 46f9e85c Check for negative values in probability tables
    • d1ca3519 Fixed sampling of angular distribution
    • 0291c0f0 Fixed indexing error in plotting
    • d7a7d0f4 Fix bug with specifying xs attribute
    • 85b3cbd8 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.6.0-beta
  • v0.5.4
    Release v0.5.4

    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

    • 32c03c44 Check for valid data in cross_sections.xml
    • c71ef57d Fix bug in statepoint.py
    • 8884fb9e Check for all ZAIDs for S(a,b) tables
    • b38af09b Fix XML reading on multiple levels of input
    • d28750c3 Fix bug in convert_xsdir.py
    • cf567cae ENDF/B-VI data checked for compatibility
    • 6b94613c 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
    Release v0.5.3

    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.
  • v0.5.2   Version 0.5.2
  • v0.5.1   Version 0.5.1
  • v0.5.0   Version 0.5.0
  • v0.4.4   Version 0.4.4
  • v0.4.3   Version 0.4.3
  • v0.4.2
  • v0.4.1
  • v0.4.0
  • old-input   Last commit with old input format