Skip to main content
← OpenMECP Documentation

gdiis_blend_step

Function gdiis_blend_step 

Source
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

  1. Build combined forces: F_i = g_vec_i + f_vec_i (Fhist)
  2. Compute error vectors: e_i = H_mean^{-1} @ F_i
  3. Build B-matrix: B[i,j] = e_i . e_j
  4. Solve [B 1; 1^T 0] . c = [0,...,0, 1]^T
  5. Interpolate: X_interp = sum(c_i . X_i) and F_interp = sum(c_i . F_i)
  6. Newton correction: X_new = X_interp - H_mean^{-1} @ F_interp
  7. Step reduction: factor = 0.5 if ||F_hist|| < thresh * 10
  8. 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.