Cross Sections & Nuclear Data

Configuring nuclear data libraries for accurate transport calculations

Nuclear Data in Monte Carlo Transport

Nuclear data libraries are the physics backbone of every Monte Carlo calculation. They contain the interaction cross sections, angular distributions, energy spectra, fission yields, and decay constants that Serpent uses to simulate how neutrons interact with matter.

Serpent uses continuous-energy ACE-format data, the same format used by MCNP and other major Monte Carlo codes. The most commonly used evaluations for reactor physics applications are ENDF/B-VII.1 and ENDF/B-VIII.0 from the United States, JEFF-3.3 from the European community, and JENDL-4.0 from Japan. Each evaluation represents an independent assessment of nuclear reaction data, and small differences between them can produce measurable effects on calculated quantities like k-effective. For most thermal reactor work, ENDF/B-VII.1 is well validated and widely used. ENDF/B-VIII.0 includes improved resonance parameters for several important isotopes.

Library Configuration

Serpent locates nuclear data through the SERPENT_DATA environment variable, which should point to the directory containing your cross-section libraries, decay data, and fission yield files. Within this directory, the .xsdata index file maps nuclide identifiers to their corresponding ACE data files.

Specifying Libraries in the Input File

text
% Primary cross-section library
set acelib "sss_endfb7u.xsdata"

% Decay data (needed for burnup calculations)
set declib "sss_endfb7.dec"

% Neutron-induced fission yields (needed for burnup)
set nfylib "sss_endfb7.nfy"

% Spontaneous fission yields (optional)
set sfylib "sss_endfb7.sfy"

If the SERPENT_DATA variable is set correctly, you can reference library files by name alone. Otherwise, provide the full path. The ACE library is always required; the decay and fission yield libraries are only needed when performing burnup calculations.

Temperature-Dependent Cross Sections

Cross sections depend strongly on temperature, primarily through the Doppler broadening of resonances. As fuel temperature increases, resonance peaks broaden and overlap more, increasing the effective absorption rate — this is the physical basis of the Doppler reactivity coefficient, one of the most important safety parameters in reactor design.

When you specify a material temperature with the tmp keyword, Serpent selects the nearest available temperature point from the nuclear data library. If the exact temperature is not available, Serpent can perform on-the-fly Doppler broadening using the Target Motion Sampling (TMS) method. In Serpent 2, TMS is enabled per-material using the tft keyword on the material card, specifying the minimum and maximum temperatures for on-the-fly broadening. This is the recommended approach for reactor calculations where different materials operate at different temperatures.

Temperature Treatment Settings

text
% Enable TMS Doppler broadening per material with tft keyword
% Syntax: mat NAME DENS tmp TEMP tft TMIN TMAX

mat fuel  -10.4 tmp 900 tft 300 1500   % Fuel at 900 K, TMS range 300-1500 K
92235.09c 0.031  92238.09c 0.969  8016.09c 2.0
mat clad  -6.56 tmp 600 tft 300 900    % Cladding at 600 K, TMS range 300-900 K
40000.09c -1.0  % (simplified single-element Zr)
mat water -0.714 tmp 574 moder lwtr 1001  % Moderator at 574 K
1001.09c 2  8016.09c 1
therm lwtr lwj3.11t

The tft keyword enables TMS for that specific material, broadening cross sections to the target temperature during particle tracking. The two arguments specify the minimum and maximum temperatures for on-the-fly broadening. Fuel materials benefit most, since temperature gradients across a pellet can span several hundred Kelvin.

Thermal Scattering Data

At thermal energies (below roughly 4 eV), the free-gas approximation for neutron scattering breaks down for atoms bound in molecules or crystal lattices. The chemical binding affects both the energy and angular distributions of scattered neutrons. Thermal scattering law data, often called S(alpha,beta) data, captures these molecular and lattice effects.

The most critical application of thermal scattering data in reactor analysis is for hydrogen in light water. Without proper S(alpha,beta) treatment, Serpent would model hydrogen as a free gas, which dramatically overpredicts the energy transfer in each scattering event and underestimates the thermal neutron population. The error can amount to several hundred pcm in k-effective — large enough to change the qualitative conclusions of a calculation.

Thermal Scattering Examples

text
% Light water with thermal scattering
mat water -0.7 tmp 574 moder lwtr 1001
1001.09c  2
8016.09c  1
therm lwtr lwj3.11t

% Heavy water with thermal scattering
mat d2o -0.85 tmp 574 moder dwtr 1002
1002.09c  2
8016.09c  1
therm dwtr hwj3.11t

% Graphite with thermal scattering
mat graphite -1.7 tmp 900 moder grph 6000
6000.09c  1
therm grph grj3.11t

The moder keyword connects a thermal scattering library name to a specific nuclide within the material. The therm card then maps that library name to the actual data file. Common thermal scattering libraries include lwj3.11tfor H in light water, hwj3.11t for D in heavy water, grj3.11t for C in graphite, and bej3.11t for metallic beryllium.

Unresolved Resonance Treatment

In the unresolved resonance region (typically above a few keV for heavy nuclei), individual resonances are too closely spaced to be resolved experimentally. Serpent handles this region using probability tables that statistically sample the fluctuating cross sections. This treatment can be enabled in Serpent 2 with set ures 1 and is particularly important for fast reactor calculations where a significant fraction of neutron interactions occur in this energy range.

text
% Enable unresolved resonance probability tables
set ures 1

Troubleshooting Nuclear Data Issues

The most common nuclear data error is "library not found," which occurs when the SERPENT_DATA environment variable is unset or points to a directory that does not contain the expected index files. Verify the variable with echo $SERPENT_DATA and check that the directory contains the .xsdata file referenced in your input.

"Temperature out of range" errors arise when a material's specified temperature falls outside the range covered by the nuclear data library and on-the-fly broadening is not enabled. Enabling TMS with the tft keyword on the material card resolves most temperature coverage issues. If Serpent warns about missing S(alpha,beta) data, check that the therm card file name matches an actual file in your data directory and that the nuclide identifier in the moder keyword matches a nuclide present in the material.