Main Developer: Villads L. Jacobsen, PhD
Contact: villads.jacobsen@copenhagenatomics.com
A TOPAS/Geant4-based toolkit to simulate charged particles and photo-nuclear reactions in molten salt reactor (MSR) environments.
This repository implements modified Geant4 physics models to estimate, among other things, neutron production rates from alpha-emitting isotopes dissolved in various salt mixtures or general materials. The tool is made to support reactor design, safety analysis, and research.
It can be used with TOPAS (recommended) or compiled directly into Geant4.
- Features
- Background
- Installation
- Usage
- Examples
- File Structure
- Contributing
- License
- Acknowledgements
- Alpha Spectrum Modeling: Generate alpha-particle sources based on material files generated in OpenMC.
- Cross-Section Data: Integrates standard nuclear data libraries (e.g., TENDL, JENDL) for nuclear reaction cross-sections and decay data.
- Salt Material Transport: Models neutron yields for fluoride-based salts with user-defined compositions. Accepts material definitions from OpenMC (XML format) and simulates decay, transport, and nuclear interactions.
- Visualization: (Future realise) Produces plots of alpha spectra, cross-sections, and neutron yield rates.
In molten salt reactors, alpha-emitting actinides can induce (α,n) reactions on salt constituents, producing secondary neutrons. Other reactions not currenlty supported by OpenMC can contribute to neutron economy as well, such as (gamma, n) reactions. Accurate estimation of these reactions can be important for:
- Reactor core neutronics and breeding ratio calculations
- Radiation shielding and safety assessments
- Material damage and activation studies
While the example focuses on (α,n) reactions, any nuclear reactions of interest can be simulated.
- OpenMC
- Geant4 (tested with geant4-v11.1.3)
- TOPAS
git clone git@github.com:openmsr/OpenMC_To_Geant4.git
cd OpenMC_To_Geant4You can Download ENDF B-VIII.1 Decay library in an GNDS format from https://www.nndc.bnl.gov/endf-releases/?version=B-VIII.0
and get JENDL/TENDL library from: https://cernbox.cern.ch/s/JBBzfqj4RVFjxL7
First follow the instruction on installing Geant4 and TOPAS (Geant4 wrapper) at https://opentopas.github.io/installation.html This project have been build and tested on a Linux system but should work on any system.
After the install you need to compile the Geant4 code in the TOPAS_extensions directory into your TOPAS(Geant4) program.
An example of compiling the TOPAS/Geant4 extensions are given in TOPAS-Extension/cmake.sh. But Note that this will need to be modified based on where your TOPAS tool is located. So change the paths as needed
./TOPAS-Extension/cmake.shthis script reads:
cd $HOME/tools/TOPAS
rm -rf OpenTOPAS-install OpenTOPAS-build
mkdir OpenTOPAS-build
mkdir OpenTOPAS-install
cd OpenTOPAS-build
export Geant4_DIR=$HOME/tools/GEANT4/geant4-install
export GDCM_DIR=$HOME/tools/GDCM/gdcm-install
extension=$HOME/projects/OpenMC_To_Geant4/TOPAS_extensions
cmake ../OpenTOPAS -DCMAKE_INSTALL_PREFIX=../OpenTOPAS-install -DTOPAS_EXTENSIONS_DIR=$extension
make -j installRun a TOPAS input file like normally, that is
topas benchmarks/MSRE/mainA.txtThis runs the benchmark for calculating (α,n) from the MSRE experiment performed at Oak-ridge national lab in 1967-1969. Estimates from the original ORNL-TM-611 reports are compared with simulated results:

Options: All the settings are done in the TOPAS input parameter file like defining sources and materials. This program provide a few custom settings. a source type "VolDecaySource" that based on you materials definition will find all alpha or gamma emitting isotopes and sample the alpha/gamma energies and yields form the a specified data library (e.g.ENDF B-VIII.1 Decay library in a GNDS format from https://www.nndc.bnl.gov/endf-releases/?version=B-VIII.0 ) and define it as your source. Before running it will print the normalizatrion constant for calculating n/(cm³s) afterwardss since you are most likley not gonna simulate the exact alpha/s from your source. However, if you did, the normalization constant would be 1.
##### SOURCE #####
s:So/ActiveSource/Type = "VolDecaySource"
s:So/ActiveSource/Component = "SpehricalSource"
sc:So/ActiveSource/ActiveMaterial = "FuelSalt_A"
s:So/ActiveSource/BeamParticle = "alpha"
b:So/ActiveSource/RecursivelyIncludeChildren = "T"
i:So/ActiveSource/MaxNumberOfPointsToSample = 10000000
ic:So/ActiveSource/NumberOfHistoriesInRun = 100000000
s:So/ActiveSource/ENDFDirPath = "nucleardata/decay"The program also provides a specific geometry/material builder that can take a material xml file from OpenMC and generate a sphere with that material definition. Note that the materials from OpenMC needs to be in mass fractions, wo, instead of atomic percentage which is commenly used. you also specify the material from your material file you want to generate. In the example below we generate the FuelsSalt A from the original MSRE experiment performed at oakridge national labs.
s:Ge/SpehricalSource/Type = "TsSphere_xml"
s:Ge/SpehricalSource/Parent = "World"
d:Ge/SpehricalSource/RMax = 10 cm
s:Ge/SpehricalSource/XMLMaterialFile = "benchmarks/MSRE/materials.xml"
s:Ge/SpehricalSource/XMLMaterialName = "FuelSalt_A"An example for calculating (alpha,n) reactions for the MSRE experiment performed at oakridge national labs in 1967-1969 are found in the examples/ directory, with a Jupyter notebook for describing the simulation and analysis steps.
OpenMC_To_Geant4/
├── benchmarks # benchmark simulations based on measured data
├── Geant4_compare # comparison with stock geant4 vs TOPAS (future update)
└── elements_yield # benchmarks on PbF2 and UF6 materials
├── examplese/
└── MSRE # Simulations of the MSRE experiment.
mainA-C.txt # TOPAS input files for simulating different fuel salts.
├── plots # plots and figures
└── notebooks # Jupyter notebooks
├── nucleardata/ # location of nuclear data to extract decay lines in GNDS format
├── TOPAS_extension/ # core Geant4 code for varius features.
└── README.md # This file
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a feature branch:
git checkout -b feature/YourFeature. - Commit your changes and push to your fork.
- Open a Pull Request against
mainbranch.
This project is licensed under the MIT License. See LICENSE for details.
- ENDF/B-VIII.0 Nuclear Data Library
- JENDL-5 Nuclear Data Library
- TENDL 2017 library
- E. Mendoza et al., ``Neutron production induced by α-decay with Geant4''Arxiv