|
RadCluster
Graph-based cluster dynamics for irradiated materials
|
RadCluster is a physics-based simulation suite for the evolution of radiation-induced defect populations in crystalline solids under neutron or ion irradiation: self-interstitial atom (SIA) dislocation loops, vacancy and helium-vacancy cavities, and free interstitial helium. The reference host material is the reduced-activation ferritic-martensitic steel EUROFER-97.
The cluster-dynamics master equation is not hand-written per material. A material is declared as a Reaction Admissibility Graph (RAG) whose edges are elementary reactions drawn from a fixed catalogue of ten abstract classes, and the right-hand side of the ODE system is assembled by walking that graph.
RadCluster contains the following modules:
The source code, the releases and the issue tracker are on GitHub. User-oriented notes are kept on the wiki.
RadCluster has two layers: a Python package (model definition, orchestration, post-processing) and a C++17 solver built on SUNDIALS/CVODE. The Python layer alone is sufficient to build a material graph, inspect the model and run the reference graph walker. Production runs use the C++ solver.
git clone https://github.com/Ghoniem/RadCluster.git cd RadCluster python -m pip install -r requirements.txt cd radcluster_code cmake -S cpp_utils -B build -DCMAKE_BUILD_TYPE=Release cmake --build build --config Release
The C++ solver needs a C++17 compiler and CMake 3.15 or newer. The following compilers should do the job:
A published container image carries the compiled solver and the Python layer, so that nothing has to be built locally. See the dedicated Container image page.
Are you running RadCluster on the UCLA Hoffman2 cluster? Then make sure you read the dedicated Running on the Hoffman2 cluster page.
The C++ solver requires the following external library:
Three further libraries are optional. Each is detected at configure time, and the solver degrades gracefully when one is absent:
The Python layer requires numpy, scipy, pandas, matplotlib, openpyxl, jupyter and ipykernel. The package networkx is optional, and is used only by the graph-diagnostics export.
This documentation is generated with Doxygen and Graphviz:
cd doxygen doxygen Doxyfile
The pages are written to the folder doxygen/HTML, which is not tracked by git.
N. M. Ghoniem, A Generalized Graph-Based Cluster Dynamics Framework for Irradiated Materials, Journal of Nuclear Materials (submitted, 2026).
Section and equation numbers in the code comments refer to that document. Its source is in the folder docs/Formulation/cluster_dynamics_framework of the repository.
RadCluster is released under the MIT License.