pub fn gdiis_blend_step(
opt_state: &OptimizationState_blend,
max_step: f64,
thresh_rms_g: f64,
print_level: usize,
reduced_factor: f64,
step_reduction_multiplier: f64,
) -> DVector<f64>Expand description
GDIIS_blend step: interpolate geometry, apply Newton correction via INVERTED mean true Hessian, with step control.
§Algorithm
- Build combined forces:
F_i = g_vec_i + f_vec_i(Fhist) - Compute error vectors:
e_i = H_mean^{-1} @ F_i - Build B-matrix:
B[i,j] = e_i . e_j - Solve
[B 1; 1^T 0] . c = [0,...,0, 1]^T - Interpolate:
X_interp = sum(c_i . X_i)andF_interp = sum(c_i . F_i) - Newton correction:
X_new = X_interp - H_mean^{-1} @ F_interp - Step reduction: factor = 0.5 if ||F_hist|| < thresh * 10
- Step size cap via
stepsize_blend
§Arguments
opt_state- Optimization state with history of geometries, combined forces (via grad + f_vec), and true Hessians.max_step- Maximum allowed step size (maxstep).thresh_rms_g- RMS gradient threshold for step reduction (conver[4]).reduced_factor- Step reduction factor when activated.
§Returns
The new geometry after GDIIS_blend interpolation, Newton correction, and step control.