fn build_gediis_b_matrix_taylor(
combined_forces: &[DVector<f64>],
geoms: &VecDeque<DVector<f64>>,
_e1_history: &VecDeque<f64>,
) -> DMatrix<f64>Expand description
Builds the GEDIIS B-matrix using the Taylor expansion formula.
§Formula
E[i,j] = -(F_i - F_j) . (X_i - X_j) for i != j
E[i,i] = 0This approximates the energy difference between points i and j using a first-order Taylor expansion WITHOUT any Hessian information.
The block matrix is:
B = [ E 1 ]
[ 1^T 0 ]RHS (built by caller): [-E_hist[0], ..., -E_hist[n-1], 1]^T.
§Key Difference from build_gediis_b_matrix
The existing Rust version uses GDIIS-style error vectors with energy diagonal coupling. This version uses pure Taylor-expansion energy overlaps as originally described by Li & Frisch.
§Arguments
combined_forces- Effective MECP forces at each history point.geoms- Geometries at each history point._e1_history- E1 energies at each history point.
§Returns
(n+1)x(n+1) block matrix: [[E, 1], [1^T, 0]].