SCONE Verification Notice

SCONE is a research-oriented code with a smaller user base than MCNP, OpenMC, or SERPENT. Our examples are intended as educational guidance. For authoritative syntax, physics options, and nuclear data requirements, consult the official documentation.

Installing SCONE

Clone, build with CMake, and verify with test problems

You need gfortran (≥ 8.3), CMake (≥ 3.10), BLAS/LAPACK, and an MPI stack if you keep MPI=ON — details below and on the official Installation page. Clone from GitHub, build in build/, run tests if your tree provides them, then obtain or build an ACE library for aceLibrary. After install, continue with SCONE Basics.

Prerequisites

Before installing SCONE, ensure you have the following prerequisites:

  • Fortran Compiler: gfortran 8.3 or newer (required). The official SCONE documentation states that gfortran is currently required; support for other compilers is pending.
  • CMake: Version 3.10 or higher for build system generation
  • BLAS/LAPACK: Basic Linear Algebra Subprograms and Linear Algebra Package
  • MPI + OpenMP: Optional at runtime, but upstream CMake defaults both to ON. Install an MPI development stack (e.g. OpenMPI) or reconfigure with -DMPI=OFF. OpenMP can be turned off with -DOPENMP=OFF.
  • pFUnit + Python: Needed only if BUILD_TESTS=ON (the default); see the official docs for pFUnit 4.
  • Git: For cloning the repository

Compiler note (upstream)

The upstream project currently requires gfortran (≥ 8.3); other Fortran compilers are described as pending, and the maintainers note they do not test Intel Fortran. Build flags in CMakeLists.txt are tuned for gfortran.

System Requirements

SCONE does not publish official system requirements. The following are reasonable estimates based on typical Monte Carlo code behavior and similar tools (MCNP, Serpent). Verify against the upstream project.

Minimum Requirements:

  • 4GB RAM
  • Modern multi-core processor
  • 1GB free disk space
  • Linux, macOS, or Windows with WSL

Recommended:

  • 16GB RAM or more
  • Modern processor with AVX2 support
  • 10GB free disk space
  • SSD storage for improved build and runtime performance
  • Linux operating system

For Small Models

Pin cell and small assembly simulations:

  • 4GB RAM
  • Dual-core processor
  • Results in minutes

For Medium Models

Full assemblies and small core models:

  • 8-16GB RAM
  • Quad-core processor
  • Results in hours

For Large Models

Full core and complex models:

  • 32GB+ RAM
  • 16+ cores recommended
  • Results in hours to days

Platform-Specific Installation

Linux Installation

Linux is the recommended platform for SCONE due to better compiler support and HPC compatibility. Follow these steps to install SCONE on most Linux distributions:

install_linux.sh
# Install required dependencies (Ubuntu/Debian)
sudo apt update
sudo apt install -y build-essential gfortran cmake git

# LAPACK/BLAS (required upstream)
sudo apt install -y liblapack-dev libblas-dev

# If building with MPI=ON (CMake default): install OpenMPI or MPICH dev packages, e.g.
# sudo apt install -y libopenmpi-dev openmpi-bin

# Clone SCONE (official repo)
git clone https://github.com/CambridgeNuclear/SCONE.git
cd SCONE

# Optional: help CMake find LAPACK / pFUnit (see official Installation on Read the Docs)
# export LAPACK_INSTALL=~/LAPACK
# export PFUNIT_DIR=~/pFUnit/build

# Configure + build (executable is build/scone.out — not build/bin/)
cmake -S . -B build \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_Fortran_COMPILER=gfortran

# Laptop without MPI toolchains:
# cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_Fortran_COMPILER=gfortran -DMPI=OFF

cmake --build build -j$(nproc)

# Run tests from repository root (paths are relative to repo root)
./build/unitTests
./build/integrationTests

# Run SCONE
./build/scone.out your_input.inp

Tutorial snippet — no separate file in examples repo

HPC Environments

If you're using SCONE on an HPC cluster with environment modules, load the required modules first:

modules_hpc_example.sh
# Example only — module names differ by site
module load gcc/12
module load cmake/3.21
# If building with default MPI=ON:
module load openmpi/4.1

Tutorial snippet — no separate file in examples repo

macOS Installation

SCONE can be installed on macOS using Homebrew to manage dependencies:

install_macos.sh
# Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# gfortran, CMake, OpenMP — align versions with https://scone.readthedocs.io/en/latest/Installation.html
brew install gcc cmake libomp

# LAPACK is required; use brew or Apple Accelerate per your setup

git clone https://github.com/CambridgeNuclear/SCONE.git
cd SCONE

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_Fortran_COMPILER=gfortran
# Or without MPI: add -DMPI=OFF

cmake --build build -j4

./build/unitTests
./build/integrationTests
./build/scone.out your_input.inp

Tutorial snippet — no separate file in examples repo

macOS caveat (official docs)

Read the Docs states that users have hit significant run-time bugs on macOS and that the team could not reproduce without local Mac access. Treat macOS as experimental; Linux or WSL is the safer path for production work.

Windows Installation

SCONE is best installed on Windows using Windows Subsystem for Linux (WSL), which provides a Linux environment within Windows:

install_wsl.sh
# Install Windows Subsystem for Linux (WSL) first
# Open PowerShell as Administrator and run:
wsl --install

# In Ubuntu (WSL):
sudo apt update
sudo apt install -y build-essential gfortran cmake liblapack-dev libblas-dev

git clone https://github.com/CambridgeNuclear/SCONE.git
cd SCONE

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_Fortran_COMPILER=gfortran
cmake --build build -j4

./build/unitTests
./build/integrationTests

Tutorial snippet — no separate file in examples repo

Windows native

Upstream documentation targets GNU/Linux and gfortran. WSL gives you that environment on Windows. A native Windows Fortran toolchain is not documented as a primary path—follow issues and docs on GitHub if you attempt it.

Build Configuration Options

Options below match the upstream CMakeLists.txt and the Installation page. There is no SCONE_ENABLE_HDF5-style toggle in that file on main.

OptionDescriptionDefaultExample
CMAKE_BUILD_TYPERelease / Debug / …(generator-dependent)-DCMAKE_BUILD_TYPE=Debug
MPILink MPI for multi-process runsON-DMPI=OFF
OPENMPOpenMP thread parallelismON-DOPENMP=OFF
LTOLink-time optimization (recommended for performance)ON-DLTO=OFF
BUILD_TESTSUnit + integration tests (needs pFUnit)ON-DBUILD_TESTS=OFF
DEBUGExtra Fortran runtime checksOFF-DDEBUG=ON
COVERAGECoverage instrumentationOFF-DCOVERAGE=ON
CMAKE_INSTALL_PREFIXInstall prefix (if you use cmake --install)Platform default-DCMAKE_INSTALL_PREFIX=~/scone

Example: debug build, no MPI, tests off (typical for a quick laptop checkout):

cmake_debug_laptop.sh
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DMPI=OFF -DBUILD_TESTS=OFF
cmake --build build -j4

Tutorial snippet — no separate file in examples repo

Nuclear Data Installation

SCONE requires nuclear data libraries to perform simulations. These libraries contain cross-section data and other nuclear physics information. Follow these steps to set up nuclear data for SCONE:

setup_nuclear_data.sh
# Create a directory for nuclear data
mkdir -p ~/nuclear_data

# Download ENDF/B-VII.1 ACE-format data (or JEF-3.1.1, etc.)
cd ~/nuclear_data
curl -O https://www.nndc.bnl.gov/endf/b7.1/acefiles/ENDF-B-VII.1-neutron-293.6K.tar.gz
tar -xzf ENDF-B-VII.1-neutron-293.6K.tar.gz

# SCONE reads ACE libraries via the aceLibrary path inside the nuclearData block
# of your input file. No separate config file or environment variable is required.

Tutorial snippet — no separate file in examples repo

Supported Nuclear Data Libraries

SCONE can use nuclear data from several evaluated libraries:

  • ENDF/B-VII.1: Comprehensive U.S. evaluation (recommended for beginners)
  • JEFF-3.3: European evaluation with strong reactor physics focus
  • JENDL-4.0: Japanese evaluation with emphasis on fast reactor data
  • User-processed libraries: Custom ACE files processed with NJOY

Nuclear Data Processing

For advanced users: If you need to process your own nuclear data libraries, you can use NJOY2016 or NJOY21 to convert ENDF-format evaluations to ACE format. This allows customization of temperature grids, inclusion of specific isotopes, or use of specialized evaluations.

Download and Verify

SCONE is open-source (MIT license) and can be downloaded from GitHub to verify examples from this guide:

clone_build_test.sh
git clone https://github.com/CambridgeNuclear/SCONE.git
cd SCONE
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_Fortran_COMPILER=gfortran
cmake --build build -j4
./build/unitTests
./build/integrationTests

Tutorial snippet — no separate file in examples repo

After a successful build, copy the minimal test input from the "Run a Simple Example" section into test_case.inp. Set aceLibrary in the nuclearData block to your .aceXS library (see the official docs); shell variables like SCONE_ACE are only a convenience if you expand them in the file. Run ./build/scone.out test_case.inp from the repository root.

Verification and Testing

After installation, it's important to verify that SCONE is working correctly:

1. Run the Test Suite

SCONE comes with a comprehensive test suite that verifies various components:

run_unit_tests.sh
# Run from SCONE root directory (not from build/)
./build/unitTests
./build/integrationTests

# Integration tests use files in IntegrationTestFiles with hard-coded relative paths.
# They may fail if run from a different directory.

Tutorial snippet — no separate file in examples repo

2. Run a Simple Example

Create a minimal block-style input file with a single fuel pin geometry. Set the aceLibrary path to your ACE data location:

Illustrative shell heredoc — production ZAIDs shown; not byte-identical to scone-examples/verify/ files in run_all.ps1. For a known testLib run, use a verify filename and export SCONE_ACE=IntegrationTestFiles/testLib.

create_test_case.sh
# Create a minimal test input (from SCONE root directory)
cat > test_case.inp << 'EOL'
type eigenPhysicsPackage;
pop 1000; active 10; inactive 5; XSdata ce; dataType ce;
collisionOperator { neutronCE { type neutronCEstd; } }
transportOperator { type transportOperatorDT; }
geometry {
  type geometryStd; boundary (0 0 0 0 0 0); graph { type shrunk; }
  surfaces {
    cellR { id 3; type zCylinder; radius 0.63; origin (0.0 0.0 0.0); }
  }
  cells {}
  universes {
    root { id 1; type rootUniverse; border 3; fill u<999>; }
    pin { id 999; type pinUniverse; radii (0.39218 0.40005 0.45720 0.0); fills (UO2-31 Helium Zircaloy Water); }
  }
}
nuclearData {
  handles { ce { type aceNeutronDatabase; aceLibrary $SCONE_ACE; } }
  materials {
    UO2-31 { temp 600; composition { 92235.06 7.2175E-04; 92238.06 2.2253E-02; 8016.06 4.5853E-02; } }
    Water { temp 600; composition { 1001.06 6.6667E-02; 8016.06 3.3333E-02; } }
    Zircaloy { temp 600; composition { 40090.06 5.0E-03; 40091.06 1.1E-03; 40092.06 1.7E-03; 40094.06 1.7E-03; 40096.06 2.8E-04; 26000.06 1.3E-04; 14000.06 1.0E-04; } }
    Helium { temp 600; composition { 2004.06 2.4044E-04; } }
  }
}
inactiveTally {}
activeTally { fissionRate { type collisionClerk; response (fission); fission { type macroResponse; MT -6; } } }
EOL

# Set ACE path, then run:
export SCONE_ACE=/path/to/your/JEF311.aceXS   # or IntegrationTestFiles/testLib for minimal tests
./build/scone.out test_case.inp

Tutorial snippet — no separate file in examples repo

IDE Configuration

Setting up a proper development environment can significantly improve your workflow when working with SCONE. Here are setup instructions for popular IDEs:

Visual Studio Code

VS Code with the Fortran extension provides an excellent development environment for SCONE:

vscode_scone_setup.sh
# Create a .vscode directory in your project
mkdir -p .vscode

# Create a settings.json file for Fortran configuration
cat > .vscode/settings.json << EOL
{
  "fortran.linter.includePaths": [
    "${workspaceFolder}/src/**"
  ],
  "fortran.fortls.path": "fortls",
  "fortran.fortls.launchWith": ["fortls", "--enable_code_actions"],
  "fortran.fortls.nthreads": 4,
  "editor.formatOnSave": true,
  "editor.rulers": [100],
  "files.associations": {
    "*.inp": "fortran"
  }
}
EOL

# Create a launch.json file for debugging
cat > .vscode/launch.json << EOL
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "cppdbg",
      "request": "launch",
      "name": "Debug SCONE",
      "program": "${workspaceFolder}/build/scone.out",
      "args": ["${file}"],
      "cwd": "${workspaceFolder}",
      "MIMode": "gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ]
    }
  ]
}
EOL

Tutorial snippet — no separate file in examples repo

Install the following VS Code extensions for Fortran development:

  • Modern Fortran (by Fortran Lang)
  • C/C++ (for debugging support)
  • CMake Tools
  • Code Runner (optional, for running simple scripts)

Vim/Neovim

For terminal-based editing, Vim or Neovim with fortran-language-server provides good support:

vim_fortran_lsp.sh
# Install fortran-language-server
pip install fortran-language-server

# Add to your .vimrc or init.vim
# For vim-plug users
call plug#begin()
Plug 'dense-analysis/ale'  " Linting
Plug 'prabirshrestha/vim-lsp'  " Language Server Protocol
Plug 'autozimu/LanguageClient-neovim'  " For Neovim
call plug#end()

" Configure LSP
let g:ale_linters = {'fortran': ['fortls']}
let g:ale_fixers = {'fortran': ['fprettify']}
let g:ale_fix_on_save = 1

" Optional: Install fprettify for code formatting
pip install fprettify

Tutorial snippet — no separate file in examples repo

Eclipse with Photran

Eclipse with the Photran plugin offers a full-featured Fortran IDE:

  1. Download Eclipse IDE for Scientific Computing
  2. Install Photran through Help → Install New Software
  3. Import SCONE as a CMake project
  4. Configure Photran to use your Fortran compiler
  5. Set up the project include paths to match SCONE's directory structure

Troubleshooting

If you encounter issues during installation or when running SCONE, try these troubleshooting steps:

install_troubleshoot.sh
# Toolchain
gfortran --version   # need >= 8.3 per official docs
cmake --version      # need >= 3.10

# MPI not installed but CMake defaults to MPI=ON
cmake -S . -B build -DMPI=OFF

# OpenMP not available
cmake -S . -B build -DOPENMP=OFF

# LTO unsupported on your compiler (see Installation docs)
cmake -S . -B build -DLTO=OFF

# Skip tests (no pFUnit / Python)
cmake -S . -B build -DBUILD_TESTS=OFF

# LAPACK not found — set search path (see Read the Docs)
# export LAPACK_INSTALL=/path/to/lapack/install

# Runtime library errors
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/libs

Tutorial snippet — no separate file in examples repo

Common Installation Problems

Problem: CMake can't find Fortran compiler

Solution: Explicitly specify the compiler path:cmake -DCMAKE_Fortran_COMPILER=/path/to/gfortran ..

Problem: Missing libraries during linking

Solution: Install missing development packages or specify library paths:cmake -DCMAKE_PREFIX_PATH=/path/to/libs ..

Problem: Segmentation fault when running SCONE

Solution: Build in debug mode and use a debugger:gdb --args ./build/scone.out input_file.inp

Problem: SCONE can't find nuclear data

Solution: Set the aceLibrary path inside the nuclearData block of your input file to the absolute path of your ACE library (e.g. JEF311.aceXS or ENDFB71.aceXS).

If problems persist, consult the following resources: