Monte Carlo Radiation Transport

Radiation moving through matter is described by the linear Boltzmann transport equation: streaming, scattering, absorption, and production of secondary particles. For any geometry you actually care about (a shield with penetrations and welds, a detector with crystals, reflectors, and dead layers) it has no closed-form solution. So you sample it instead, with Monte Carlo.

I took the MCNP class at Los Alamos in 2010 and used MCNP (Monte Carlo N-Particle) for a good chunk of my thesis and several papers after it (Google Scholar).

The idea

Instead of solving the equation, you simulate one particle's life as a sequence of random choices, then repeat it a few million times and average. You are not coarse-meshing the equation and hoping; you are sampling the same distributions the equation is built from: distance to the next interaction (from the mean free path), scatter versus absorption, and the new direction and energy after a scatter. Each is a known distribution from the nuclear data. Follow enough histories and the law of large numbers converges on the answer, with a quantified error.

A Monte Carlo particle-track plot: about two thousand simulated neutron histories drawn as green lines streaming and scattering through a rectangular room geometry with a polyethylene moderator.
2,000 simulated neutron histories streaming and scattering through an experimental room geometry in MCNP, with a polyethylene moderator. Each line is one particle's random walk; the answer is the average over all of them.
A Monte Carlo particle-track plot: about two thousand simulated neutron histories drawn as green lines streaming and scattering through a rectangular room geometry with a polyethylene moderator.
2,000 simulated neutron histories streaming and scattering through an experimental room geometry in MCNP, with a polyethylene moderator. Each line is one particle's random walk; the answer is the average over all of them.

How MCNP works

You write a deck, a plain-text input with a few jobs:

  • Geometry. Define surfaces (planes, spheres, cylinders) and combine them with Boolean logic into cells. Combinatorial geometry is powerful and the most common source of error: leave a gap or overlap two cells and particles are lost to the void.
  • Materials. Each cell gets isotopes, densities, and cross-section libraries. The result is only as good as the nuclear data.
  • Source. Particle type, energy, position, and direction: a Cf-252 point source, a beam, a distributed volume source.
  • Tallies. What you want to score: surface flux, energy deposition, current, dose. The tally is the question.

Particles random-walk through the geometry and the tallies accumulate. Every result comes with a relative error, because it is a statistical estimate.

Variance reduction

Statistical error falls as one over the square root of the history count: a 10x improvement costs 100x the particles. That is brutal for deep-penetration problems, where most source particles die long before reaching the tally. Variance reduction biases the simulation toward the histories that contribute and corrects with statistical weights to keep the estimate unbiased. The standard tools are importance with particle splitting and Russian roulette, and weight windows (a spatially varying, automated version). Done well, a week-long run finishes overnight; done badly, you bias the answer or wreck the statistics. This is most of the actual skill.

The error bars are the result

A Monte Carlo mean without a converged error estimate is not a result. MCNP runs ten statistical checks per tally: relative error magnitude, 1/sqrt(N) behavior, a stable figure of merit, and the variance of the variance. The dangerous failure is a clean-looking mean sitting on unconverged statistics, usually one rare high-weight history dominating the tally. Check the diagnostics, not just the number.

What it is for

Shielding design, occupational and public dose, predicting detector response, and criticality safety. When you cannot build it and measure, you simulate.

MCNP is export-controlled and distributed through RSICC, which makes it a poor teaching tool. When I needed something students could install and run themselves I used the open-source alternative, which I wrote about in teaching with GEANT4. For transport work that needs an experienced hand, that is the kind of thing I take on at Such Software.