RadCluster
Graph-based cluster dynamics for irradiated materials
Loading...
Searching...
No Matches
Classes | Functions
parameters.h File Reference

Go to the source code of this file.

Classes

struct  Parameters
 

Functions

double require_param (const std::map< std::string, double > &m, const std::string &key)
 
double optional_param (const std::map< std::string, double > &m, const std::string &key, double def)
 
std::map< std::string, double > parse_param_file (const std::string &path)
 
Parameters build_parameters (const std::map< std::string, double > &p)
 

Detailed Description

parameters.h — RadCluster_2_1 solver parameter struct.

All quantities that the ODE right-hand side needs are pre-computed on the Python side (InputData + ReactionRates) and forwarded via a parameter file (–param_file=<path>). build_parameters() unpacks them into this struct so the RHS performs only arithmetic.

Physics reference: Ghoniem (2026), Rate_Equations.pdf.

State vector y[N_eq]

full_CD_fission (Case 2, he_mode=0): y[0..I-1] — SIA clusters c_n, n=1..I y[I..I+V-1] — vacancy/bubble c_m (marginal), m=1..V y[I+V] — Q_tot (total He in voids) y[I+V+1] — c_h (free He) [omitted when he_kinetics=1 (QSS)] N_eq = I + V + 2 (dynamic) or I + V + 1 (quasi_steady_state)

full_CD_fusion (Case 1, he_mode=1): y[0..I-1] — SIA clusters c_n y[I..I+V-1] — c_m^tot y[I+V..I+2V-1] — Q_m (He per class) y[I+2V] — c_h [omitted when he_kinetics=1 (QSS)] N_eq = I + 2V + 1 (dynamic) or I + 2V (quasi_steady_state)

bin_moment_CD_fission/fusion (physics_option 2/3): y[0..2Ib-1] — SIA bin moments [μ_0^(0), μ_0^(1), ..., μ_{Ib-1}^(1)] y[2Ib..2Ib+V-1] — c_m y[2Ib+V..] — He variables (same as Case 2 or Case 1) N_eq = 2Ib + V + 2 or 2Ib + 2V + 1 (dynamic) N_eq = 2Ib + V + 1 or 2Ib + 2V (quasi_steady_state)

he_kinetics: 0 = dynamic (c_h is an ODE state, Eq. 157) 1 = quasi_steady_state (c_h computed algebraically from dc_h/dt = 0; valid because E_m_h = 0.06 eV is small)

C_floor: concentration floor. In the RHS, any state variable below C_floor is clamped to C_floor for rate computation, and any derivative of a floor-clamped variable is clamped to >= 0 to prevent negative excursions.

Definition in file parameters.h.

Function Documentation

◆ build_parameters()

Parameters build_parameters ( const std::map< std::string, double > &  p)
inline

Unpack a parsed parameter map into a Parameters struct.

Definition at line 398 of file parameters.h.

◆ optional_param()

double optional_param ( const std::map< std::string, double > &  m,
const std::string &  key,
double  def 
)
inline

Definition at line 358 of file parameters.h.

◆ parse_param_file()

std::map< std::string, double > parse_param_file ( const std::string &  path)
inline

Read a parameter file written by cpp_bridge.py. Format: key=value per line; blank lines and '#' lines ignored.

Definition at line 368 of file parameters.h.

◆ require_param()

double require_param ( const std::map< std::string, double > &  m,
const std::string &  key 
)
inline

Definition at line 348 of file parameters.h.