Skip to main content
← OpenMECP Documentation

build_gediis_b_matrix_taylor

Function build_gediis_b_matrix_taylor 

Source
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] = 0

This 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]].