Basic Concepts & Workflow

Monte Carlo Basics

Before diving into Serpent, let's review some fundamental concepts of Monte Carlo neutron transport:

Random Walk Process

  • Neutrons move through space randomly
  • Each interaction is sampled probabilistically
  • Large number of histories for statistical accuracy
  • Tracks individual particle histories

Key Physics

  • Cross sections determine interaction probabilities
  • Different reaction types (scatter, fission, capture)
  • Energy-dependent interactions
  • Continuous-energy treatment

Note: Unlike deterministic codes that solve the transport equation directly, Monte Carlo methods simulate individual particle histories to build up the solution statistically.

Serpent Input Structure

A typical Serpent input file consists of several key sections:

1. Material Definitions

Define materials using composition and temperature:

mat fuel -10.4 tmp 900
92235.09c -0.04
92238.09c -0.96

2. Geometry Description

Define surfaces and cells:

surf 1 cyl 0.0 0.0 0.4
cell 1 0 fuel -1

3. Physics Parameters

Set simulation parameters:

set pop 10000 100 20
set acelib "endfb71.xsdata"

Pro Tip: Always organize your input file in logical sections and use comments to document your choices. This makes it easier to modify and debug later.

Typical Workflow

The typical workflow for running Serpent simulations follows these steps:

  1. Preparation
    • Define problem geometry and materials
    • Choose appropriate cross-section libraries
    • Set up simulation parameters
    • Create input file with text editor
  2. Running the Simulation
    • Execute Serpent with input file
    • Monitor progress in terminal
    • Check for warning messages
    • Wait for completion
  3. Post-processing
    • Examine output files
    • Check convergence and statistics
    • Process results (using scripts if needed)
    • Visualize data

File Structure

Serpent uses several file types during simulation:

Input Files

  • *.inp - Main input file
  • *.xsdata - Cross section library index
  • *.dec - Decay data (optional)
  • *.nfy - Fission yield data (optional)

Output Files

  • _res.m - Main results
  • _det.m - Detector output
  • _dep.m - Depletion output
  • _out - Running log

Recommended Organization:

  • Keep input files in a dedicated directory
  • Use descriptive filenames
  • Maintain version control
  • Back up important results

Understanding Output

Serpent generates several output files with different purposes:

Main Output (_res.m)

  • k-effective and other global parameters
  • Reaction rates and fluxes
  • Statistical uncertainties
  • Group constants (if requested)

Running Log (_out)

  • Progress information
  • Warning messages
  • Memory usage
  • Timing statistics

Detector Output (_det.m)

  • User-defined tallies
  • Mesh plots
  • Energy spectra
  • Spatial distributions

Statistical Uncertainties: Always verify the relative errors in your results. Monte Carlo calculations without uncertainty quantification provide no reliable information about solution quality.

Best Practices

Input File Organization

  • Use consistent naming conventions
  • Comment your input files thoroughly
  • Break complex geometries into manageable pieces
  • Keep a template for common configurations

Simulation Management

  • Start with simple models and add complexity gradually
  • Test convergence with different particle populations
  • Save input files with results for reproducibility
  • Document any modifications or special conditions

Quality Control

  • Verify geometry using visualization tools
  • Check material compositions and temperatures
  • Monitor statistical convergence
  • Compare results with known benchmarks when possible

Next Steps

Now that you understand the basic concepts and workflow, you're ready to:

  • Create your first Serpent input file
  • Run a simple simulation
  • Analyze basic output

Continue to the next section to create and run your first Serpent simulation.