RadCluster
Graph-based cluster dynamics for irradiated materials
Loading...
Searching...
No Matches
C++ solver

Introduction

The production engine of RadCluster is a C++17 program built on SUNDIALS/CVODE. Time integration uses the variable-order BDF method, which suits the stiffness of coupled defect kinetics: the rates span many decades, and the physical times range from microseconds to \(10^8\) s.

The Python layer precomputes all rate constants, writes them to a parameter file, starts the solver as a subprocess, and reads the solution back. The bridge is radcluster_code/py_utils/cpp_bridge.py.

Pages

Source files

File Content
core/solver.cpp CVODE driver and main()
core/parameters.h the struct Parameters and the parser of the parameter file
core/rate_equations.h declarations of the right-hand-side callbacks and of UserData
core/rhs_dispatch.cpp preconditioner entry points, Jacobi and Woodbury preconditioners
core/sparse_jacobian.cpp colored finite-difference sparse Jacobian for KLU
materials/eurofer97/rate_kernels.cpp EUROFER-97 kernel arithmetic: rhs_full_CD() and rhs_bin_moment()

All paths are relative to radcluster_code/cpp_utils.

See also
Abstract core (Layer 1), EUROFER-97