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
/api/simulations
List all simulations for the authenticated user
/api/simulations
Create a new simulation
/api/simulations/:id
Get details of a specific simulation
/api/simulations/:id/run
Start simulation execution
Results API
/api/results/:simulationId
Get all results for a simulation
/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.
/api/webhooks
List all configured webhooks for your account
/api/webhooks
Create a new webhook endpoint
/api/webhooks/:id
Update webhook configuration
/api/webhooks/:id
Delete a webhook endpoint
Webhook Events
Simulation Events
simulation.createdsimulation.startedsimulation.completedsimulation.failedsimulation.cancelled
Progress Events
simulation.progresssimulation.batch_completeresults.readyexport.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
Define Core Geometry
Choose lattice type (hexagonal/square), number of assemblies, and dimensions.
Select Materials
Choose fuel, coolant, cladding, and structural materials from the library.
Set Operating Conditions
Define power level, temperatures, flow rates, and boundary conditions.
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:
# 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.