What’s New in 0.11.0

Summary

This release of OpenMC adds several major new features: depletion, photon transport, and support for CAD geometries through DAGMC. In addition, the core codebase has been rewritten in C++14 (it was previously written in Fortran 2008). This makes compiling the code considerably simpler as no Fortran compiler is needed.

Functional expansion tallies are now supported through several new tally filters that can be arbitrarily combined:

Note that these filters replace the use expansion scores like scatter-P1. Instead, a normal scatter score should be used along with a openmc.LegendreFilter.

The interface for random sphere packing has been significantly improved. A new openmc.model.pack_spheres() function takes a region and generates a random, non-overlapping configuration of spheres within the region.

New Features

  • White boundary conditions can be applied to surfaces

  • Support for rectilinear meshes through openmc.RectilinearMesh.

  • The Geometry, Materials, and Settings classes now have a from_xml method that will build an instance from an existing XML file.

  • Predefined energy group structures can be found in openmc.mgxs.GROUP_STRUCTURES.

  • New tally scores: H1-production, H2-production, H3-production, He3-production, He4-production, heating, heating-local, and damage-energy.

  • Switched to cell-based neighor lists (PR 1140)

  • Two new probability distributions that can be used for source distributions: openmc.stats.Normal and openmc.stats.Muir

  • The openmc.data module now supports reading and sampling from ENDF File 32 resonance covariance data (PR 1024).

  • Several new convenience functions/methods have been added:

    • The openmc.model.cylinder_from_points() function creates a cylinder given two points passing through its center and a radius.

    • The openmc.Plane.from_points() function creates a plane given three points that pass through it.

    • The openmc.model.pin() function creates a pin cell universe given a sequence of concentric cylinders and materials.

Python API Changes

  • All surface classes now have coefficient arguments given as lowercase names.

  • The order of arguments in surface classes has been changed so that coefficients are the first arguments (rather than the optional surface ID). This means you can now write:

    x = openmc.XPlane(5.0, 'reflective')
    zc = openmc.ZCylinder(0., 0., 10.)
    
  • The Mesh class has been renamed openmc.RegularMesh.

  • The get_rectangular_prism function has been renamed openmc.model.rectangular_prism().

  • The get_hexagonal_prism function has been renamed openmc.model.hexagonal_prism().

  • Python bindings to the C/C++ API have been move from openmc.capi to openmc.lib.

Bug Fixes

Contributors

This release contains new contributions from the following people: