NUC-350 · Lesson 2 of 12 · 21 min

Lattice physics

Hana's first task is to rerun the lattice calculations for the 17 × 17 assemblies planned for the next reload of one of TVA's pressurized water reactors, including assemblies with integral fuel burnable absorber rods. "The core simulator never sees a fuel pin," Teodora tells her. "It sees homogenized assemblies, each with a handful of cross sections. Everything about pins, cladding, guide tubes and water gaps has to be folded into those numbers by the lattice code. If the lattice step is wrong, no amount of care in the core model can fix it."

The lattice and the two-step method

A power reactor core is built from repeated units. A light-water reactor core is an array of square fuel assemblies, each holding a lattice of fuel pins, guide tubes and sometimes absorber pins, all bathed in water. A CANDU core is an array of horizontal channels on a square pitch in a tank of heavy-water moderator; each channel holds a string of fuel bundles in a pressure tube, separated from the moderator by a gas-filled calandria tube. In both cases, the core is far too detailed to model pin by pin in three dimensions over a whole cycle.

Reactor physics therefore works in two steps. In the first, the lattice step, a transport calculation is made for one assembly or bundle cell, usually in two dimensions with reflective boundaries, as if it were part of an infinite array of identical units. This calculation uses dozens or hundreds of energy groups and represents every pin, sheath and coolant region explicitly. Its output is a set of few-group, homogenized cross sections for the whole unit, together with factors that let the detailed pin powers be reconstructed later. In the second step, the core step, a diffusion or simplified transport code solves for the whole core using those homogenized constants node by node.

A flow diagram of the two-step method. On the left, a nuclear data library feeds a lattice transport calculation of one assembly with many energy groups and reflective boundaries. Its output, a table of homogenized few-group constants against burnup, temperature and boron, feeds a core simulator box that models the whole core in three dimensions with two groups. Arrows from the core simulator lead to core power distribution, k, and pin power reconstruction.
The two-step method: a detailed lattice calculation produces homogenized constants that a core simulator uses for the whole reactor.

The pin cell and the Wigner-Seitz approximation

The simplest lattice unit is a single fuel pin and its share of moderator. In a square lattice, each pin sits at the center of a square cell whose side is the pitch. The traditional simplification, due to Wigner and Seitz, replaces the square cell by a cylinder of the same area, with a reflective or white boundary condition on its outer surface. The fuel occupies the inner region, followed by a gap, the cladding and the moderator. Because the cell is symmetric, the flux depends only on the radius.

Within the cell, the thermal flux is not uniform. Thermal neutrons are created by slowing down in the moderator, diffuse toward the fuel and are absorbed there. The flux is therefore highest in the moderator and lowest at the center of the fuel. Two quantities describe this flux shape:

Quantities that describe the flux shape inside a lattice cell.
QuantityDefinitionTypical size
Thermal disadvantage factoraverage thermal flux in the moderator divided by that in the fuelabout 1.05 to 1.2 in light-water pin cells; larger for CANDU clusters
Thermal utilization fthermal absorptions in fuel divided by all thermal absorptions in the cellabout 0.85 to 0.95 in light-water lattices; about 0.9 to 0.98 in CANDU
Self-shielding factoraverage flux inside an absorber divided by the flux at its surfacewell below 1 for strong absorbers and resonances

The thermal utilization enters the four-factor formula from Reactor Physics I directly. Written with flux-weighted averages, it is:

\[f = \frac{\Sigma_{a,F}\,\bar\phi_F\,V_F}{\Sigma_{a,F}\,\bar\phi_F\,V_F + \Sigma_{a,M}\,\bar\phi_M\,V_M} = \frac{1}{1 + \dfrac{\Sigma_{a,M} V_M}{\Sigma_{a,F} V_F}\,\zeta}\]

where ζ = φ̄_M/φ̄_F is the disadvantage factor. A larger disadvantage factor means that the moderator sees relatively more flux and therefore absorbs a larger share of neutrons. Lattice design always balances two effects: adding moderator improves slowing down and reduces resonance absorption, but also increases parasitic absorption in the moderator. The best ratio of moderator to fuel depends strongly on the moderator. Light water absorbs enough that light-water lattices are tight, with a pitch only about 1.3 times the pin diameter. Heavy water absorbs so little that CANDU lattices can be widely spaced, with a pitch of about 28.6 cm between channels.

On the left, a square fuel cell with a circular pin is shown beside the equivalent Wigner-Seitz cylinder of the same area. On the right, a plot of thermal flux against radius across the cylinder shows a dip in the fuel region and a higher, nearly flat level in the moderator, with the disadvantage factor marked as the ratio of the two average levels.
The Wigner-Seitz cell and the thermal flux dip in the fuel. The dip is what makes flux-volume weighting necessary.

Homogenization: flux-volume weighting

To give the core simulator a single cross section for a cell or assembly, the lattice code averages each cross section over space, weighted by flux and volume, so that the homogenized cell absorbs and produces neutrons at the same total rates as the detailed one:

\[\Sigma_{x,g}^{\text{hom}} = \frac{\sum_i \Sigma_{x,g,i}\,\bar\phi_{g,i}\,V_i}{\sum_i \bar\phi_{g,i}\,V_i}\]

A plain volume average would give the fuel too much weight, because the fuel actually sees less flux than the moderator. The program below solves a one-speed thermal diffusion problem across a Wigner-Seitz cell with a uniform slowing-down source in the moderator, then computes the disadvantage factor, the thermal utilization and the flux-weighted absorption cross section. It runs one light-water-like pin cell and one heavy-water-like cell in which the fuel cluster has been smeared into a single cylinder.

One-speed thermal diffusion across a Wigner-Seitz cell with a uniform source in the moderator. All cross sections and radii are illustrative.
# Lattice cell: one-speed thermal diffusion in a Wigner-Seitz cylinder.
# Neutrons are slowed down (uniform source) in the moderator and absorbed mostly
# in the fuel. Finite differences in r give the flux shape; flux-volume weighting
# gives homogenized constants. Values are illustrative.
import math
def cell(r_fuel, r_cell, D_f, sa_f, D_m, sa_m, n=200):
    h = r_cell / n; r = [(i + 0.5) * h for i in range(n)]
    D = [D_f if x < r_fuel else D_m for x in r]
    sa = [sa_f if x < r_fuel else sa_m for x in r]
    q = [0.0 if x < r_fuel else 1.0 for x in r]          # slowing-down source
    a, b, c = [0.0] * n, [0.0] * n, [0.0] * n
    for i in range(n):
        rw, re_ = i * h, (i + 1) * h
        Dw = 2 * D[i] * D[i - 1] / (D[i] + D[i - 1]) if i else 0.0
        De = 2 * D[i] * D[i + 1] / (D[i] + D[i + 1]) if i < n - 1 else 0.0   # reflective outer edge
        vol = r[i] * h
        a[i] = -Dw * rw / h; c[i] = -De * re_ / h
        b[i] = -(a[i] + c[i]) + sa[i] * vol; q[i] *= vol
    cp, dp = [0.0] * n, [0.0] * n
    for i in range(n):
        m = b[i] - (a[i] * cp[i - 1] if i else 0.0)
        cp[i] = c[i] / m; dp[i] = (q[i] - (a[i] * dp[i - 1] if i else 0.0)) / m
    phi = [0.0] * n
    for i in reversed(range(n)):
        phi[i] = dp[i] - (cp[i] * phi[i + 1] if i < n - 1 else 0.0)
    V = [r[i] * h for i in range(n)]
    fF = sum(phi[i] * V[i] for i in range(n) if r[i] < r_fuel) / sum(V[i] for i in range(n) if r[i] < r_fuel)
    fM = sum(phi[i] * V[i] for i in range(n) if r[i] >= r_fuel) / sum(V[i] for i in range(n) if r[i] >= r_fuel)
    vf = r_fuel**2 / r_cell**2
    f = sa_f * fF * vf / (sa_f * fF * vf + sa_m * fM * (1 - vf))
    sa_hom = (sa_f * fF * vf + sa_m * fM * (1 - vf)) / (fF * vf + fM * (1 - vf))
    return fM / fF, f, sa_hom
# light-water-like pin cell (cm): small pitch, strong moderator absorption
dis, f, sah = cell(0.41, 0.71, 0.36, 0.30, 0.16, 0.020)
print(f"light-water pin cell: disadvantage factor {dis:.3f}, thermal utilization f = {f:.3f}, homogenized sigma_a = {sah:.4f} /cm")
# heavy-water-like cell: fuel cluster smeared into a 5 cm radius, large lattice
dis2, f2, sah2 = cell(5.0, 16.0, 0.70, 0.060, 0.85, 0.00008)
print(f"heavy-water cluster cell: disadvantage factor {dis2:.3f}, thermal utilization f = {f2:.3f}, homogenized sigma_a = {sah2:.5f} /cm")
# what a simple volume-weighted average (no flux weighting) would give
vf = 0.41**2 / 0.71**2
print(f"volume-only average for the pin cell = {0.30*vf + 0.020*(1-vf):.4f} /cm (overestimates fuel absorption)")
Output
light-water pin cell: disadvantage factor 1.054, thermal utilization f = 0.877, homogenized sigma_a = 0.1101 /cm
heavy-water cluster cell: disadvantage factor 1.790, thermal utilization f = 0.978, homogenized sigma_a = 0.00350 /cm
volume-only average for the pin cell = 0.1134 /cm (overestimates fuel absorption)

The light-water cell has a small disadvantage factor because its moderator region is thin. The heavy-water cell has a much larger one, because neutrons slow down far from the fuel and the flux builds up in the large moderator region. Even so, the heavy-water cell has the higher thermal utilization, because heavy water absorbs so little. The volume-only average for the light-water cell overestimates the absorption cross section by about 3 percent, which would bias k by several hundred pcm in a core calculation.

Worked problem

Thermal utilization from a disadvantage factor

A pin cell has a fuel-to-moderator volume ratio V_F/V_M = 0.50, Σ_{a,F} = 0.30 per cm and Σ_{a,M} = 0.020 per cm. The disadvantage factor is 1.10. Find f.

Show solution
  1. Ratio term: (Σ_{a,M}V_M)/(Σ_{a,F}V_F) = (0.020 × 2.0)/(0.30 × 1.0) = 0.1333.
  2. Multiply by ζ: 0.1333 × 1.10 = 0.1467.
  3. f = 1/(1 + 0.1467) = 0.872.

Answer: About 87 percent of thermal absorptions occur in the fuel. Without the flux dip, ζ = 1 would give 0.882, an error of about one percent in f.

From pin cell to assembly

Real lattice codes go well beyond the Wigner-Seitz pin cell. A modern light-water lattice calculation models the full assembly in two dimensions: each fuel pin with its own composition, the guide tubes and instrument tube filled with water, any burnable absorber pins, the grid spacers smeared into the coolant and the water gap between assemblies. The transport equation is solved by the method of characteristics, collision probabilities or discrete ordinates in many groups. The resulting flux gives homogenized constants for the whole assembly, and also the pin-by-pin power within it.

For a boiling water reactor such as the BWRX-300, the lattice must also capture the channel box, the wide water gaps outside it, the control blade position and the strong variation of void fraction. Lattice constants are therefore calculated at several void fractions and with and without the control blade, and the core simulator interpolates between them. For the PWR assemblies in TVA's cores, branch calculations cover changes in boron concentration, moderator temperature, fuel temperature and control rod insertion.

Branches, histories and the cross-section table

A lattice calculation is not done once. The fuel burns, and its composition changes; the operating state changes, and the spectrum changes with it. A lattice code therefore performs a depletion calculation through the life of the fuel at nominal conditions, called the history, and at selected burnup points it branches off to calculate constants at other conditions: higher or lower fuel temperature, moderator temperature or density, boron, void or control insertion. The results fill a multidimensional table, and the core simulator interpolates in that table for each node at each step.

Effects that depend on history rather than the current state are especially important. Fuel burned with the moderator at high void fraction in a boiling water reactor, for example, builds up more plutonium than fuel burned at low void, because the harder spectrum favors capture in uranium-238. Two nodes with the same burnup but different void histories therefore have different reactivities. Codes handle this by tabulating constants against both the instantaneous and the historical conditions, or by tracking important nuclides directly in the core calculation.

Pin power reconstruction and discontinuity factors

Homogenization throws away detail that matters for safety: the power of the hottest pin. Core simulators recover it by pin power reconstruction. The lattice code stores, for each assembly type, the ratio of each pin's power to the assembly average in an infinite lattice. The core simulator computes a smooth intra-assembly flux shape from its own nodal solution and multiplies it by these form factors to estimate each pin's power in the actual core environment.

A second correction keeps the homogenized model consistent. When a detailed heterogeneous assembly is replaced by a homogeneous block, the flux at the block surface no longer matches the true surface flux. Assembly discontinuity factors, the ratio of the heterogeneous surface flux to the homogeneous one, are stored by the lattice code and used by the core simulator to allow a controlled discontinuity in the homogeneous flux at assembly faces. With these factors, a coarse nodal model can reproduce the reaction rates of the detailed calculation much more closely.

Common mistakes

  • MistakeA simple volume average of the cross sections is good enough for homogenization.

    InsteadCross sections must be weighted by flux as well as volume, because the fuel sees less flux than the moderator.

  • MistakeLattice constants are calculated once for fresh fuel.

    InsteadThey are tabulated through the whole burnup history and at branch conditions for temperature, density, boron, void and control.

  • MistakeHomogenization removes the need to know individual pin powers.

    InsteadPin powers are reconstructed from stored form factors, because the hottest pin sets safety limits.

Summary and key terms

  • The two-step method uses a detailed lattice transport calculation to make homogenized constants for a core simulator.
  • In a lattice cell, thermal flux dips in the fuel; the disadvantage factor measures that dip.
  • Homogenized constants are flux-volume weighted so that reaction rates are preserved.
  • Lattice constants are tabulated against burnup, history and branch conditions.
  • Pin power reconstruction and discontinuity factors recover detail lost by homogenization.
Lattice code
A transport code that calculates neutron behavior in one fuel assembly or cell in many energy groups.
Wigner-Seitz cell
A cylinder of the same area as a square lattice cell, used to simplify the cell geometry.
Disadvantage factor
The ratio of average thermal flux in the moderator to that in the fuel.
Homogenization
Replacing a detailed region by a uniform one with equivalent cross sections.
Branch calculation
A lattice calculation at off-nominal conditions taken from a point in the depletion history.
Discontinuity factor
The ratio of heterogeneous to homogeneous surface flux used to correct nodal models.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. Why does the thermal flux dip in the fuel of a pin cell?

    Show answer

    Thermal neutrons are produced in the moderator and absorbed strongly in the fuel, so the flux falls toward the fuel center.

  2. Why can CANDU lattices be more widely spaced than light-water lattices?

    Show answer

    Heavy water absorbs very few neutrons, so adding moderator costs little parasitic absorption.

  3. What is a branch calculation?

    Show answer

    A lattice calculation at changed conditions, such as higher fuel temperature or boron, made at a burnup point of the nominal history.

  4. In the example, what would f be if the disadvantage factor were 1.0?

    Show answer

    About 0.882.

  5. What are pin form factors used for?

    Show answer

    To reconstruct individual pin powers from the core simulator's smooth nodal flux.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz