Documentation

Learn how to use the LFR Simulation Platform for your nuclear reactor research.

Quick Start Guide

1 Create an Account

Sign up for a free trial at lfrsim.com/dashboard. No credit card required for the 14-day trial.

2 Select a Reactor Template

Choose from pre-configured reactor templates (ALFRED, MYRRHA, LFR-AS-200) or create a custom configuration.

{
  "template": "alfred",
  "thermal_power": 480,  // MW
  "core_height": 90,     // cm
  "fuel_type": "MOX",
  "coolant": "lead"
}

3 Configure Simulation Parameters

Set up Monte Carlo parameters, mesh resolution, and output tallies.

{
  "particles": 10000000,
  "batches": 500,
  "inactive_batches": 100,
  "mesh_resolution": "medium",
  "tallies": ["flux", "power", "heating"]
}

4 Run Simulation

Click "Run Simulation" and monitor progress in real-time. Results are automatically processed and visualized.

5 Analyze Results

View k-eff, flux distributions, power maps, and use the AI Assistant for deeper analysis and optimization recommendations.

Key Concepts

Neutronic Simulation

Monte Carlo particle transport using OpenMC. Calculates neutron multiplication factor (k-eff), flux distributions, reaction rates, and power profiles. Uses ENDF/B-VIII.0 cross-section libraries.

Thermohydraulic Analysis

CFD simulations using OpenFOAM for lead/LBE coolant flow. Models temperature distributions, heat transfer, and natural circulation with liquid metal-specific correlations.

Coupled Multi-Physics

Iterative coupling between neutronic and thermohydraulic solvers. Accounts for temperature feedback on cross-sections (Doppler effect) and density feedback on moderation.

Neutronic Simulation (OpenMC)

Overview

OpenMC is an open-source Monte Carlo particle transport code for neutronics simulations. Our platform provides a streamlined interface to configure and run OpenMC simulations for lead-cooled fast reactor analysis.

Key Features

  • Monte Carlo neutron transport with variance reduction
  • ENDF/B-VIII.0 cross-section libraries
  • k-eigenvalue calculations (k-eff)
  • Flux, power, and reaction rate tallies
  • Temperature-dependent cross sections (Doppler broadening)
  • Depletion and burnup analysis
// Neutronic simulation configuration
{
  "type": "neutronic",
  "solver": "openmc",
  "particles": 10000000,
  "batches": 500,
  "inactive_batches": 100,
  "tallies": ["flux", "power", "heating", "absorption"],
  "cross_sections": "endfb8",
  "temperature_K": 900
}

Thermohydraulic Analysis

Overview

CFD-based thermohydraulic analysis using OpenFOAM for lead and LBE coolant flow simulations. Models heat transfer, temperature distributions, and natural circulation with liquid metal-specific correlations.

Key Features

  • Lead/LBE-specific thermal properties
  • Natural convection and forced circulation
  • Conjugate heat transfer (fuel-clad-coolant)
  • Temperature distribution mapping
  • Pressure drop calculations
// Thermohydraulic configuration
{
  "type": "thermohydraulic",
  "solver": "openfoam",
  "coolant": "lead",
  "inlet_temp_C": 400,
  "outlet_temp_C": 480,
  "mass_flow_rate_kg_s": 25800,
  "mesh_resolution": "fine"
}

Coupled Multi-Physics Analysis

Overview

Iterative coupling between neutronic and thermohydraulic solvers to capture multi-physics feedback effects. Essential for accurate prediction of reactor behavior accounting for temperature feedback on cross-sections.

Feedback Effects

Doppler Effect

Temperature-dependent resonance broadening affects neutron absorption in fuel.

Density Feedback

Coolant density changes with temperature affect neutron moderation.

Axial Expansion

Thermal expansion of fuel and structures affects geometry.

Radial Expansion

Core radial expansion introduces negative reactivity feedback.

// Coupled simulation configuration
{
  "type": "coupled",
  "neutronic_solver": "openmc",
  "thermal_solver": "openfoam",
  "coupling_scheme": "picard",
  "max_iterations": 20,
  "convergence_criteria": {
    "keff_tolerance": 1e-5,
    "temperature_tolerance_K": 1.0
  }
}

Materials Library

Overview

Comprehensive database of nuclear materials with validated physical and nuclear properties. All materials include temperature-dependent correlations where applicable and are compatible with ENDF/B-VIII.0 cross-section libraries.

Fuels

  • • MOX (25% and 30% Pu)
  • • Uranium Nitride (UN)
  • • UO2 (Low Enriched)
  • • U-Zr Metallic Alloy

Coolants

  • • Pure Lead (Pb)
  • • Lead-Bismuth Eutectic (LBE)
  • • Sodium (Na)

Claddings

  • • T91 Steel (9Cr-1Mo)
  • • 15-15Ti Steel (AIM1)
  • • ODS Steel (14Cr)
  • • Inconel 718

Structures

  • • Stainless Steel 316L
  • • Stainless Steel 304

Reflectors

  • • Steel Reflector
  • • Zirconia (ZrO2)

Absorbers

  • • Boron Carbide (B4C)
  • • Enriched B4C (90% B-10)
  • • Europium Oxide (Eu2O3)

Material Properties

Each material includes:

  • Isotopic composition
  • Density (temperature-dependent)
  • Melting/boiling points
  • Thermal conductivity
  • Specific heat capacity
  • Viscosity (for coolants)
  • Thermal expansion coefficient
  • Applicable reactor types

Example: Pure Lead Properties

{
  "id": "lead-pure",
  "name": "Pure Lead (Pb)",
  "category": "coolant",
  "composition": [
    { "isotope": "Pb-204", "weight_percent": 1.4 },
    { "isotope": "Pb-206", "weight_percent": 24.1 },
    { "isotope": "Pb-207", "weight_percent": 22.1 },
    { "isotope": "Pb-208", "weight_percent": 52.4 }
  ],
  "properties": {
    "density": "11441 - 1.2795*T [kg/m³]",
    "melting_point": 600.6,  // K
    "boiling_point": 2022,   // K
    "thermal_conductivity": "9.2 + 0.011*T [W/(m·K)]",
    "specific_heat": "175.1 - 0.0424*T + 1.43e-5*T² [J/(kg·K)]"
  },
  "temperature_range": { "min": 601, "max": 1800 }
}

Using Materials in Simulations

// Reference materials by ID in your simulation configuration
{
  "reactor": {
    "fuel": "mox-25",
    "coolant": "lead-pure",
    "cladding": "t91-steel",
    "reflector": "steel-reflector",
    "control_rods": "b4c"
  }
}

// Or use the Materials API
GET /api/materials               // List all materials
GET /api/materials/lead-pure     // Get specific material
GET /api/materials?category=fuel // Filter by category

API Reference

Authentication

All API requests require authentication using an API key in the header.

curl -X GET "https://api.lfrsim.com/v1/simulations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Simulations API

GET /api/simulations

List all simulations for the authenticated user

POST /api/simulations

Create a new simulation

GET /api/simulations/:id

Get details of a specific simulation

POST /api/simulations/:id/run

Start simulation execution

Results API

GET /api/results/:simulationId

Get all results for a simulation

GET /api/results/:id/download

Download result files (HDF5, CSV)

Webhooks API

Receive real-time notifications when simulation events occur. Configure webhooks to integrate with your CI/CD pipelines, monitoring systems, or custom applications.

GET /api/webhooks

List all configured webhooks for your account

POST /api/webhooks

Create a new webhook endpoint

PUT /api/webhooks/:id

Update webhook configuration

DELETE /api/webhooks/:id

Delete a webhook endpoint

Webhook Events

Simulation Events
  • simulation.created
  • simulation.started
  • simulation.completed
  • simulation.failed
  • simulation.cancelled
Progress Events
  • simulation.progress
  • simulation.batch_complete
  • results.ready
  • export.completed

Example: Create Webhook

// Create a webhook to receive simulation notifications
POST /api/webhooks
{
  "url": "https://your-server.com/webhook",
  "events": ["simulation.completed", "simulation.failed"],
  "secret": "your_webhook_secret",   // For signature verification
  "active": true
}

// Response
{
  "id": "wh_123abc",
  "url": "https://your-server.com/webhook",
  "events": ["simulation.completed", "simulation.failed"],
  "active": true,
  "created_at": "2024-01-15T10:30:00Z"
}

Webhook Payload Example

// POST to your webhook URL
{
  "event": "simulation.completed",
  "timestamp": "2024-01-15T12:45:30Z",
  "data": {
    "simulation_id": "sim_abc123",
    "name": "ALFRED BOC Analysis",
    "status": "completed",
    "duration_seconds": 3847,
    "results": {
      "keff": 1.00234,
      "keff_uncertainty": 0.00012
    }
  }
}

// Verify signature using X-Webhook-Signature header
// HMAC-SHA256(payload, secret)

Example: Create and Run Simulation

import requests

API_KEY = "your_api_key"
BASE_URL = "https://api.lfrsim.com/v1"

# Create simulation
simulation = requests.post(
    f"{BASE_URL}/simulations",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "name": "ALFRED BOC Analysis",
        "type": "neutronic",
        "reactor_template": "alfred",
        "config": {
            "particles": 10000000,
            "batches": 500,
            "inactive_batches": 100
        }
    }
).json()

# Run simulation
requests.post(
    f"{BASE_URL}/simulations/{simulation['id']}/run",
    headers={"Authorization": f"Bearer {API_KEY}"}
)

print(f"Simulation {simulation['id']} started!")

ALFRED Reactor Template

Overview

ALFRED (Advanced Lead-cooled Fast Reactor European Demonstrator) is a 300 MWth pool-type lead-cooled fast reactor designed by the LEADER consortium.

Core Parameters

Thermal Power 300 MWth
Electric Power 125 MWe
Coolant Pure Lead
Fuel MOX
Cycle Length 5 years

Temperatures

Inlet Temperature 400°C
Outlet Temperature 480°C
Peak Cladding 550°C max
Peak Fuel 2000°C max
// ALFRED template configuration
{
  "template": "alfred",
  "version": "2.0",
  "core": {
    "type": "hexagonal",
    "assemblies": 171,
    "height_cm": 90,
    "diameter_cm": 230
  },
  "fuel": {
    "type": "MOX",
    "enrichment": 0.1975,
    "pu_fraction": 0.25
  },
  "coolant": {
    "type": "lead",
    "inlet_temp_C": 400,
    "outlet_temp_C": 480,
    "flow_rate_kg_s": 25800
  }
}

MYRRHA Reactor Template

Overview

MYRRHA (Multi-purpose hYbrid Research Reactor for High-tech Applications) is an accelerator-driven system (ADS) research reactor using lead-bismuth eutectic coolant, developed by SCK CEN in Belgium.

Core Parameters

Thermal Power 100 MWth
Operating Mode Sub-critical (ADS) / Critical
Coolant Lead-Bismuth Eutectic
Fuel MOX
Proton Beam 600 MeV, 4 mA

Temperatures

Inlet Temperature 270°C
Outlet Temperature 410°C
Peak Cladding 450°C max
LBE Melting Point 125°C
// MYRRHA template configuration
{
  "template": "myrrha",
  "version": "1.0",
  "core": {
    "type": "hexagonal",
    "assemblies": 151,
    "height_cm": 60,
    "diameter_cm": 140
  },
  "fuel": {
    "type": "MOX",
    "enrichment": 0.35,
    "pu_fraction": 0.30
  },
  "coolant": {
    "type": "lbe",
    "inlet_temp_C": 270,
    "outlet_temp_C": 410,
    "flow_rate_kg_s": 4700
  },
  "spallation_target": {
    "material": "lbe",
    "proton_energy_MeV": 600,
    "beam_current_mA": 4
  }
}

LFR-AS-200 Reactor Template

Overview

LFR-AS-200 is a 200 MWe small modular lead-cooled fast reactor designed for commercial deployment. Features passive safety systems and long refueling intervals.

Core Parameters

Thermal Power 480 MWth
Electric Power 200 MWe
Coolant Pure Lead
Fuel Uranium Nitride (UN)
Cycle Length 10+ years

Temperatures

Inlet Temperature 420°C
Outlet Temperature 530°C
Peak Cladding 600°C max
Efficiency ~42%

Key Features

  • Passive decay heat removal (DHRS)
  • Natural circulation capable
  • Seismic isolation
  • Long-life core (10+ years without refueling)
  • Modular construction
// LFR-AS-200 template configuration
{
  "template": "lfr-as-200",
  "version": "1.0",
  "core": {
    "type": "hexagonal",
    "assemblies": 241,
    "height_cm": 110,
    "diameter_cm": 280
  },
  "fuel": {
    "type": "UN",
    "enrichment": 0.165,
    "nitrogen_enrichment": 0.99  // N-15 enriched
  },
  "coolant": {
    "type": "lead",
    "inlet_temp_C": 420,
    "outlet_temp_C": 530,
    "flow_rate_kg_s": 32000
  },
  "safety_systems": {
    "dhrs": true,
    "natural_circulation": true,
    "passive_scram": true
  }
}

Custom Reactor Configuration

Overview

Create your own reactor configuration from scratch. Define custom geometry, materials, and operating conditions for research or design optimization studies.

Configuration Steps

1

Define Core Geometry

Choose lattice type (hexagonal/square), number of assemblies, and dimensions.

2

Select Materials

Choose fuel, coolant, cladding, and structural materials from the library.

3

Set Operating Conditions

Define power level, temperatures, flow rates, and boundary conditions.

4

Configure Assembly Layout

Define fuel, control, and reflector assembly positions in the core map.

// Custom reactor configuration example
{
  "template": "custom",
  "name": "My Research Reactor",
  "core": {
    "type": "hexagonal",
    "pitch_cm": 16.2,
    "assemblies": 91,
    "height_cm": 80,
    "zones": [
      { "name": "inner", "rings": 3, "enrichment": 0.20 },
      { "name": "outer", "rings": 2, "enrichment": 0.25 }
    ]
  },
  "fuel": {
    "type": "mox-25",           // Reference material ID
    "pellet_diameter_mm": 8.2,
    "clad_thickness_mm": 0.5,
    "pins_per_assembly": 127
  },
  "coolant": {
    "type": "lead-pure",        // Reference material ID
    "inlet_temp_C": 380,
    "outlet_temp_C": 500
  },
  "cladding": "t91-steel",      // Reference material ID
  "control_rods": {
    "absorber": "b4c",
    "positions": [1, 7, 19, 37, 61]  // Assembly indices
  }
}

Validation

Custom configurations are validated before simulation to ensure:

  • Material compatibility (temperatures within valid ranges)
  • Geometric consistency (no overlapping regions)
  • Physics validity (reasonable power densities, flow rates)
  • Safety constraints (thermal margins, void coefficients)

Tutorials

Tutorial 1: Your First Simulation

Learn how to create and run a basic neutronic simulation from scratch.

Step 1: Navigate to New Simulation

Go to Simulations → New Simulation from the sidebar.

Step 2: Select Reactor Template

Choose ALFRED as your reactor template. This provides a pre-configured lead-cooled fast reactor model.

Step 3: Configure Parameters

Set simulation parameters:

{
  "particles": 1000000,
  "batches": 100,
  "inactive_batches": 20
}

Step 4: Run and Monitor

Click "Start Simulation" and monitor progress in real-time. View k-eff convergence and estimated time remaining.

Step 5: Analyze Results

Once complete, view your results including k-eff value, flux distribution maps, and power profiles. Use the AI Assistant for optimization suggestions.

Tutorial 2: Burnup Analysis

Learn how to perform fuel depletion calculations over the reactor cycle.

Overview

Burnup analysis tracks how fuel composition changes over time due to fission and neutron capture.

Configuration

{
  "simulation_type": "burnup",
  "power_level_MW": 300,
  "timesteps": [0, 30, 90, 180, 365, 730, 1095, 1460],
  "timestep_unit": "days",
  "depletion_solver": "CRAM48"
}

Key Outputs

  • k-eff vs burnup curve
  • Isotopic composition evolution
  • Activity and decay heat
  • Reactivity coefficients over time

Tutorial 3: Transient Analysis

Simulate time-dependent reactor behavior during accidents or operational transients.

Scenario: Unprotected Loss of Flow (ULOF)

Model a pump trip scenario without scram to analyze natural circulation capability.

Configuration

{
  "simulation_type": "transient",
  "scenario": "ulof",
  "initial_power_fraction": 1.0,
  "pump_coastdown_time_s": 10,
  "simulation_duration_s": 600,
  "time_step_s": 0.1
}

Key Outputs

  • Temperature evolution (fuel, clad, coolant)
  • Power and reactivity history
  • Flow rate and natural circulation onset
  • Safety margins analysis

OpenMC Setup

Overview

OpenMC is the Monte Carlo particle transport code used for neutronic simulations. The platform runs OpenMC in containerized environments, but you can also run locally for development.

Docker Installation (Recommended)

The easiest way to run OpenMC locally:

# Pull the official OpenMC Docker image
docker pull openmc/openmc:latest

# Run with cross-section data
docker run -it -v $(pwd):/work openmc/openmc:latest

# Or use our pre-configured LFR image with all dependencies
docker pull lfrsim/openmc-lfr:latest

Cross-Section Libraries

Required nuclear data libraries:

ENDF/B-VIII.0 Recommended
JEFF-3.3 Alternative
TENDL-2019 For activation
# Download cross-section data
wget https://anl.box.com/shared/static/endfb-viii.0-hdf5.tar.gz
tar -xzf endfb-viii.0-hdf5.tar.gz

# Set environment variable
export OPENMC_CROSS_SECTIONS=/path/to/cross_sections.xml

Verify Installation

import openmc

# Check version
print(openmc.__version__)

# Verify cross-sections are available
materials = openmc.Materials()
mat = openmc.Material()
mat.add_nuclide('U235', 1.0)
print("OpenMC installed successfully!")

OpenFOAM Setup

Overview

OpenFOAM is used for CFD thermohydraulic simulations. We use a customized version with liquid metal correlations for lead and LBE coolants.

Docker Installation

# Pull OpenFOAM with liquid metal extensions
docker pull lfrsim/openfoam-lm:v2312

# Run interactive session
docker run -it -v $(pwd):/work lfrsim/openfoam-lm:v2312

# Inside container, source OpenFOAM
source /opt/openfoam/etc/bashrc

Native Installation (Ubuntu/Debian)

# Add OpenFOAM repository
curl -s https://dl.openfoam.com/add-debian-repo.sh | sudo bash

# Install OpenFOAM v2312
sudo apt-get update
sudo apt-get install openfoam2312

# Source environment
source /usr/lib/openfoam/openfoam2312/etc/bashrc

# Install LFR liquid metal extensions
git clone https://github.com/lfrsim/openfoam-lm-extensions.git
cd openfoam-lm-extensions && ./Allwmake

Liquid Metal Properties

Pre-configured transport models for:

  • Pure lead (Pb) - temperature range 601-1800 K
  • Lead-bismuth eutectic (LBE) - temperature range 399-1700 K
  • Sodium (Na) - temperature range 372-1100 K
  • Low-Prandtl number heat transfer correlations

Python SDK

Installation

# Install from PyPI
pip install lfrsim

# Or install with optional dependencies
pip install lfrsim[all]  # Includes visualization tools

# For development
pip install lfrsim[dev]

Quick Start

from lfrsim import Client, Simulation

# Initialize client with API key
client = Client(api_key="your_api_key")

# Create a new simulation
sim = Simulation(
    name="ALFRED Analysis",
    template="alfred",
    simulation_type="neutronic"
)

# Configure parameters
sim.config.particles = 10_000_000
sim.config.batches = 500

# Submit and run
job = client.submit(sim)
print(f"Job ID: {job.id}")

# Wait for completion
result = job.wait()
print(f"k-eff: {result.keff} ± {result.keff_std}")

Working with Results

from lfrsim import Client
import matplotlib.pyplot as plt

client = Client(api_key="your_api_key")

# Get simulation results
result = client.get_result("sim_abc123")

# Access key metrics
print(f"k-eff: {result.keff}")
print(f"Peak power density: {result.peak_power_density} W/cm³")

# Get flux distribution as numpy array
flux = result.get_tally("flux")
print(f"Flux shape: {flux.shape}")

# Plot power map
power_map = result.get_power_map()
plt.imshow(power_map, cmap='hot')
plt.colorbar(label='Power (W)')
plt.savefig('power_distribution.png')

# Export to HDF5
result.export_hdf5("results.h5")

# Export to CSV
result.export_csv("results/")

SDK Features

  • Async job submission
  • Progress callbacks
  • Result caching
  • Batch operations
  • Pandas integration
  • NumPy arrays
  • Matplotlib helpers
  • CLI tools

Need Help?

Can't find what you're looking for? Our support team is here to help.