Introduction to Serpent

A modern Monte Carlo code for reactor physics and burnup analysis

What is Serpent?

Serpent is a three-dimensional continuous-energy Monte Carlo particle transport code developed at VTT Technical Research Centre of Finland. It was originally designed as a simplified reactor physics tool for generating homogenized group constants for deterministic reactor simulator calculations. Since then, it has expanded to cover reactor physics, fuel cycle analysis, radiation shielding, and multi-physics coupling.

What distinguishes Serpent from older Monte Carlo codes is its user-friendly input format and its tight integration of burnup calculation capability directly into the transport solver. Where MCNP depletion workflows have historically been more complex to set up, Serpent was designed from the outset to handle the entire coupled transport-depletion sequence internally.

Serpent is available at no cost to academic users through formal licensing from the NEA Data Bank or RSICC, and is widely adopted in universities and research institutions. VTT maintains active development with regular updates, and the Serpent discussion forum provides a well-documented knowledge base for user support.

Main Applications

Serpent's primary strength lies in reactor physics calculations. It handles criticality eigenvalue problems, fuel assembly homogenization, and group constant generation for deterministic codes. The built-in burnup solver handles fuel cycle studies, tracking how fuel composition changes over months or years of reactor operation. It also supports isotope inventory tracking, decay heat analysis, and spent fuel characterization.

Beyond traditional reactor analysis, Serpent supports multi-physics coupling interfaces that connect it with thermal-hydraulic and fuel performance codes. This allows coupled simulations where neutronics, heat transfer, and material behavior are solved together, capturing feedback effects that single-physics calculations miss. Serpent can also import CAD-based geometries, bridging the gap between engineering design tools and neutronics analysis.

While Serpent can handle fusion neutronics, radiation shielding, and detector modeling, this guide focuses on reactor physics applications.

Key Features

Serpent uses a Constructive Solid Geometry (CSG) approach to define problem geometries, similar to other Monte Carlo codes. However, it also provides a built-in universe-based geometry system with dedicated pin and lattice definitions that simplify the construction of regular reactor geometries. A 17x17 PWR fuel assembly that might require hundreds of surface and cell definitions in other codes can be expressed in Serpent with a compact pin definition and a lattice map.

The integrated depletion solver couples the neutron transport calculation with the Bateman equations that govern isotopic transmutation. Serpent automatically updates cross sections as fuel composition changes during irradiation, using sophisticated predictor-corrector algorithms to maintain accuracy across burnup steps. The code ships with comprehensive depletion chains covering actinides, fission products, and activation products.

Performance-wise, Serpent employs delta-tracking (also known as Woodcock rejection sampling) that can significantly accelerate particle transport in complex geometries. It supports shared-memory parallelism through OpenMP and distributed-memory parallelism through MPI, enabling efficient use of modern computing hardware from laptops to high-performance clusters.

Learning Path

The first chapters cover installation, the basic workflow, and your first simple simulation. From there, you will learn the input file structure and how to define materials with proper nuclear data identifiers, temperature specifications, and thermal scattering treatments.

The geometry chapters introduce surfaces, cells, pins, lattices, and the universe concept that underpins Serpent's approach to hierarchical geometry construction. You will then learn how to configure physics settings, define neutron sources, and set up criticality calculations with appropriate population parameters.

The later chapters cover running simulations, interpreting output, burnup analysis, and visualization. Two complete worked examples — a PWR fuel pin cell and a fuel assembly model — tie all the concepts together into realistic applications.

Prerequisites

To get the most from this guide, you should have a basic understanding of nuclear physics and reactor theory — concepts like neutron cross sections, fission chain reactions, and criticality should be familiar. Experience with a command-line interface is helpful since Serpent is executed from the terminal, and you will need a text editor for writing input files.

Serpent runs on Linux natively, and most production work is done on Linux systems or clusters. A Windows installation through WSL (Windows Subsystem for Linux) is also possible for learning purposes. Access to Serpent itself requires registration through the official VTT distribution channels. The Serpent Wiki at serpent.vtt.fi provides the official documentation, and the discussion forum at ttuki.vtt.fi/serpent is the primary venue for user support.

Related