Back to projects

1-D Fission Reactor Monte Carlo

A multigroup Monte Carlo neutron transport code for one-dimensional fission-reactor slabs, with a finite-difference diffusion solver for reference solutions, flux and current plots, and convergence studies.

PythonMonte CarloDiffusionNumPyNumbaMatplotlib

View on GitHub


Overview

This project solves multigroup neutron transport in a 1-D assembly geometry representing UO₂ and MOX pin lattices. The Monte Carlo solver tracks individual neutron histories generation by generation to estimate k-effective, group fluxes, and currents.

A companion finite-difference diffusion eigenvalue solver provides deterministic reference solutions on the same mesh and cross-section data, useful for verification, mesh refinement studies, and comparing transport versus diffusion behavior.

What it does

Monte Carlo method

Each generation follows the classic fission-source iteration loop:

  1. Fission birth & banking

    Generations start from a fuel-region guess, then from a fission bank. Each history samples position, energy group (χ), and direction cosine μ.

  2. Free flight & collisions

    Path lengths are sampled from Σ_t. Particles either collide in a mesh cell (capture, fission, in-scatter, or down-scatter) or cross mesh and material interfaces.

  3. Boundaries & tallies

    Reflective or vacuum faces are applied per energy group. Track-length flux and signed surface currents accumulate every generation.

  4. k-effective estimate

    k is the fission-bank size divided by histories per generation. Inactive generations are skipped before averaging active-generation statistics.

Problem setups

Input decks cover 2-group and 7-group cross sections with configurations such as UO₂–UO₂, MOX–MOX, and UO₂–MOX assembly pairs. Mesh density is controlled by meshes-per-fuel-rod and meshes-per-water-rod settings in the deck.

Analysis scripts plot power-normalized fluxes and currents, run mesh and generation convergence studies, collapse 7-group results to 2-group, and explore extra configurations such as reflectors and control rods.

See the code

Full solvers, input decks, and plotting scripts are on GitHub.

Open repository