Monte Carlo Transport Basics#

This page provides a concise primer on the Monte Carlo method for neutron transport as implemented in MC/DC. Readers already familiar with MC transport may skip ahead to the advanced theory pages.

The Boltzmann Transport Equation#

MC/DC solves the linear Boltzmann transport equation for the angular neutron flux \(\psi(\mathbf{r}, \hat{\Omega}, E, t)\):

\[\frac{1}{v}\frac{\partial\psi}{\partial t} + \hat{\Omega}\cdot\nabla\psi + \Sigma_t\,\psi = \int_{4\pi}\!\int_0^\infty \Sigma_s(E'\to E,\hat{\Omega}'\to\hat{\Omega})\,\psi'\,dE'\,d\Omega' + \frac{\chi(E)}{4\pi}\int_0^\infty \nu\Sigma_f(E')\,\phi(E')\,dE' + Q\]

where

  • \(\Sigma_t\), \(\Sigma_s\), \(\Sigma_f\) are the macroscopic total, scattering, and fission cross sections (cm-1),

  • \(\nu\) is the average number of neutrons emitted per fission,

  • \(\chi(E)\) is the fission spectrum,

  • \(\phi(E) = \int_{4\pi}\psi\,d\Omega\) is the scalar flux,

  • \(Q\) is an external source.

The scalar flux \(\phi\) is the primary quantity of interest for most tallies.

Random Walk#

Monte Carlo solves the transport equation by simulating individual neutron random walks (histories). Each history proceeds as:

  1. Birth — A neutron is sampled from the source distribution \(Q(\mathbf{r}, \hat{\Omega}, E, t)\).

  2. Free flight — The distance to the next collision is sampled from the exponential distribution:

    \[d = -\frac{\ln\xi}{\Sigma_t(E)}\]

    where \(\xi\) is a uniform random number on \((0,1)\). If a geometry boundary is reached first, the particle crosses (or reflects/leaks) and the free flight continues.

  3. Collision — The interaction type is selected by the ratio of partial to total cross sections: scattering (\(\Sigma_s / \Sigma_t\)), capture (\(\Sigma_c / \Sigma_t\)), or fission (\(\Sigma_f / \Sigma_t\)).

    • Scattering: New direction and energy are sampled from the differential scattering kernel.

    • Capture: The neutron is absorbed (history terminates in analog mode).

    • Fission: \(\lfloor\nu + \xi\rfloor\) secondary neutrons are produced and banked for later processing.

  4. Termination — The history ends when the particle is absorbed, leaks out of the domain, or falls below a weight threshold.

Tallying#

During the random walk, MC/DC accumulates tally scores — estimates of physical quantities such as scalar flux, fission rate, or neutron density.

MC/DC supports two main estimator types:

Track-length estimator

Accumulates the path length \(\ell\) of each flight through a tally region, weighted by the particle weight \(w\):

\[\hat{\phi}_V = \frac{1}{V} \sum_{\text{tracks}} w\,\ell\]
Collision estimator

Scores at each collision site:

\[\hat{\phi}_V = \frac{1}{V\,\Sigma_t} \sum_{\text{collisions}} w\]

Both estimators are unbiased for the volume-averaged scalar flux. The track-length estimator generally has lower variance because it scores on every flight segment, not just at collision points.

Statistical Uncertainty#

MC/DC uses batch statistics to estimate the uncertainty of tally results. The simulation is divided into \(N_b\) independent batches, each with \(N_p / N_b\) particles. The sample mean and sample standard deviation of the batch means provide the central estimate and its statistical error:

\[\bar{x} = \frac{1}{N_b}\sum_{b=1}^{N_b} x_b, \qquad \sigma_{\bar{x}} = \sqrt{\frac{1}{N_b(N_b-1)}\sum_{b=1}^{N_b}(x_b - \bar{x})^2}\]

The relative standard deviation \(\sigma_{\bar{x}} / \bar{x}\) decreases as \(O(1/\sqrt{N_p})\). For faster convergence, see:

References#

  • E. E. Lewis and W. F. Miller, Jr. Computational Methods of Neutron Transport. John Wiley & Sons (1984).

  • L. L. Carter and E. D. Cashwell. Particle-Transport Simulation with the Monte Carlo Method. ERDA (1975).