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)\):
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:
Birth — A neutron is sampled from the source distribution \(Q(\mathbf{r}, \hat{\Omega}, E, t)\).
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.
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.
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:
The relative standard deviation \(\sigma_{\bar{x}} / \bar{x}\) decreases as \(O(1/\sqrt{N_p})\). For faster convergence, see:
Variance Reduction Techniques — implicit capture, weight roulette, population control.
Weight Windows — weight windows.
iQMC — quasi-Monte Carlo methods for \(O((\log N)^d / N)\) convergence.
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).