RadCluster
Graph-based cluster dynamics for irradiated materials
Loading...
Searching...
No Matches
Functions
solver.cpp File Reference

Go to the source code of this file.

Functions

static BOOL WINAPI win_console_handler (DWORD ctrl_type)
 
void posix_interrupt_handler (int)
 
static void install_interrupt_handlers ()
 
static std::map< std::string, double > parse_cli_args (int argc, char *argv[])
 
int main (int argc, char *argv[])
 

Detailed Description

solver.cpp — RadCluster_2_1 main C++ ODE solver.

Drives the RadCluster_2_1 cluster dynamics system for bcc Fe / EUROFER97. Invoked by py_utils/cpp_bridge.py via a parameter file: solver.exe –param_file=<path>

Physics reference: Ghoniem (2026), Rate_Equations.pdf, Eqs. 152, 155, 157, Chapter 9 (bin moments), Section 8 (He-reduction).

Solver modes (window_mode parameter): 0 = full_system — full system, CVODE BDF. 4 = active_window — two independent sliding windows (SIA + VAC) with OpenMP-parallel RHS. Thread count is auto-selected from max(N_eq, I+V) — the RHS sweep length, which in bin_moment mode is far larger than the ODE count (overridable via OMP_NUM_THREADS); when OpenMP is unavailable or the auto-pick lands on 1, the same code path simply runs serial.

Physics options (physics_option_int): 0 = full_CD_fission — I+V+2 equations (Case 2, Eq. 175) 1 = full_CD_fusion — I+2V+1 equations (Case 1, Eq. 174) 2 = bin_moment_CD_fission — 2Ib+V+2 equations (Chapter 9 + Case 2) 3 = bin_moment_CD_fusion — 2Ib+2V+1 equations (Chapter 9 + Case 1)

Output: n_points rows × (1 + N_eq) columns written as raw float64 binary to a companion .bin file, or space-separated text to stdout (fallback).

Build: cd radcluster_code/cpp_utils cmake -S . -B ../build -DCMAKE_BUILD_TYPE=Release cmake –build ../build –config Release

Definition in file solver.cpp.

Function Documentation

◆ install_interrupt_handlers()

static void install_interrupt_handlers ( )
static

Definition at line 109 of file solver.cpp.

◆ main()

int main ( int  argc,
char *  argv[] 
)

Definition at line 147 of file solver.cpp.

◆ parse_cli_args()

static std::map< std::string, double > parse_cli_args ( int  argc,
char *  argv[] 
)
static

Definition at line 120 of file solver.cpp.

◆ posix_interrupt_handler()

void posix_interrupt_handler ( int  )

Definition at line 104 of file solver.cpp.

◆ win_console_handler()

static BOOL WINAPI win_console_handler ( DWORD  ctrl_type)
static

Definition at line 91 of file solver.cpp.