What’s New in 0.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.

Attention

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

System Requirements

There are no special requirements for running the OpenMC code. As of this release, OpenMC has been tested on a variety of Linux distributions and Mac OS X. Numerous users have reported working builds on Microsoft Windows, but your mileage may vary. Memory requirements will vary depending on the size of the problem at hand (mostly on the number of nuclides and tallies in the problem).

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

  • 937469: Fix energy group sampling for multi-group simulations

  • a149ef: Ensure mutable objects are not hashable

  • 2c9b21: Preserve backwards compatibility for generated HDF5 libraries

  • 8047f6: Handle units of division for tally arithmetic correctly

  • 0beb4c: Compatibility with newer versions of Pandas

  • f124be: Fix generating 0K data with openmc.data.njoy module

  • 0c6915: Bugfix for generating thermal scattering data

  • 61ecb4: Fix bugs in Python multipole objects

Contributors

This release contains new contributions from the following people: