← Back to all sparks
O

OpenMC

ANALYTICS
Velocity2.5

Monte Carlo neutron and photon transport simulation code for particle physics

OpenMC's random ray solver has gone from new arrival to the centre of every release

monte-carlo-transportrandom-raydepletionneutronicspython-api
Current state
OpenMC is a Monte Carlo particle transport code for neutronics and radiation analysis. Since the random ray transport solver landed in 0.15.0 it has received substantial work in every subsequent release, most recently local adjoint sources, temperature and distributed-density feedback, fission-heating tallies and a weight-window bootstrapping workflow. The other consistent thread is shutdown-dose and depletion tooling, where 0.15.3 introduced an R2SManager to automate the rigorous two-step workflow and 0.16.0 extended it with reactivity control, CRAM substeps and multiple meshes.
Where it's heading
The project is layering a deterministic-adjacent solver alongside its Monte Carlo core rather than replacing it, and the ratio of random-ray work to core-solver work in each release keeps rising. In parallel it is packaging expert workflows into objects — R2SManager is the clearest case, turning a multi-stage shutdown dose calculation into a class rather than a recipe. The Python API is where most of that packaging surfaces, and it is also where the compatibility breaks land, with the minimum version moving to 3.12 in 0.16.0.
Prediction
Given that every release since 0.15.0 has expanded the random ray solver's feedback and tally coverage, the next is likely to continue closing the gap between it and the main solver's feature set. The notes do not indicate whether it is intended to become a default path.

Recent moves

  1. 5d ago

    Surface-flux tallies and PDG particle identifiers in OpenMC 0.16.0

    A broad release touching every subsystem: surface-flux tallies, secondary-particle production filters, source biasing and coupled neutron-photon pulse-height support in the core solver, and generalized particle identifiers moving to PDG numbering. The random ray solver and the depletion workflow both take another step forward, and Python 3.12 becomes the minimum.

    View source ↗
  2. 8mo ago

    R2SManager automates shutdown dose rate calculations in OpenMC 0.15.3

    Packages the rigorous two-step shutdown dose workflow into a single class, which is the clearest example yet of the project turning expert multi-stage procedures into API objects. Also adds collision tracking, an uncertainty-aware criticality search and higher tally moments for normality testing, while MCPL becomes an optional runtime dependency rather than a build-time one.

    View source ↗
  3. 1y ago

    OpenMC 0.15.2 hotfixes an MPI regression

    A three-fix hotfix for an MPI bug introduced in the previous release, specifically a wrongly sized displacement list in the source-site interface. Corrective only, with no new capability.

    View source ↗
  4. 1y ago

    Ray-traced material volumes and Phong-shaded plots in OpenMC 0.15.1

    The first release after the random ray solver's debut, and already dominated by improvements to it. The standout elsewhere is a reimplementation of mesh material volume computation on ray tracing, which parallelizes and substantially speeds up a previously slow step, plus a 3D solid ray trace plot class and composite surfaces that widen MCNP model conversion.

    View source ↗
  5. 2y ago

    OpenMC 0.15.0 introduces a random ray transport solver

    ⚡ SPARK

    The release that sets the agenda for everything after it: a second transport solver based on the random ray method, added alongside the Monte Carlo core rather than replacing it. Every subsequent release in this window devotes significant work to extending it, which is the clearest evidence of where the project's effort has moved.

    View source ↗
  6. 2y ago

    Weight window generation and continuous nuclide feed in OpenMC 0.14.0

    The pre-random-ray baseline: projection plots, photon pulse height tallies, weight window generation, and continuous removal or feed of nuclides during depletion. It also eliminated the long-standing requirement to seed depletion calculations with dilute nuclides, and redesigned the MicroXS class — early instances of the workflow-smoothing that later becomes the project's signature.

    View source ↗