# A.7 GDIIS

Direct inversion in the iterative subspace (DIIS) was originally developed by Pulay for accelerating SCF convergence.796 Subsequently, Csaszar and Pulay used a similar scheme for geometry optimization, which they termed GDIIS.189 The method is somewhat different from the usual quasi-Newton type approach and is included in Optimize as an alternative to the EF algorithm. Tests indicate that its performance is similar to EF, at least for small systems; however there is rarely an advantage in using GDIIS in preference to EF.

In GDIIS, geometries $\mathbf{x}_{i}$ generated in previous optimization cycles are linearly combined to find the “best” geometry on the current cycle

 $\mathbf{x}_{n}=\sum\limits_{i=1}^{m}c_{i}\mathbf{x}_{i}$ (A.33)

where the problem is to find the best values for the coefficients $c_{i}$.

If we express each geometry, $\mathbf{x}_{i}$, by its deviation from the sought-after final geometry, $\mathbf{x}_{f}$, i.e., $\mathbf{x}_{f}=\mathbf{x}_{i}+\mathbf{e}_{i}$, where $\mathbf{e}_{i}$ is an error vector, then it is obvious that if the conditions

 $\mathbf{r}=\sum c_{i}\mathbf{e}_{i}$ (A.34)

and

 $\sum{c_{i}}=1$ (A.35)

are satisfied, then the relation

 $\sum c_{i}\mathbf{x}_{i}=\mathbf{x}_{f}$ (A.36)

also holds.

The true error vectors $\mathbf{e}_{i}$ are, of course, unknown. However, in the case of a nearly quadratic energy function they can be approximated by

 $\mathbf{e}_{i}=-\mathbf{H}^{-1}\mathbf{g}_{i}$ (A.37)

where $\mathbf{g}_{i}$ is the gradient vector corresponding to the geometry $\mathbf{x}_{i}$ and $\mathbf{H}$ is an approximation to the Hessian matrix. Minimization of the norm of the residuum vector $\mathbf{r}$, Eq. (A.34), together with the constraint equation, Eq. (A.35), leads to a system of $m+l$ linear equations

 $\left({{\begin{array}[]{*{20}c}{B_{11}}&\cdots&{B_{1m}}&1\\ \vdots&\ddots&\vdots&\vdots\\ {B_{m1}}&\cdots&{B_{mm}}&1\\ 1&\cdots&1&0\\ \end{array}}}\right)\left({{\begin{array}[]{*{20}c}{c_{1}}\\ \vdots\\ {c_{m}}\\ {-\lambda}\\ \end{array}}}\right)=\left({{\begin{array}[]{*{20}c}0\\ \vdots\\ 0\\ 1\\ \end{array}}}\right)$ (A.38)

where $B_{ij}=\langle\mathbf{e}_{i}|\mathbf{e}_{j}\rangle$ is the scalar product of the error vectors $\mathbf{e}_{i}$ and $\mathbf{e}_{j}$, and $\lambda$ is a Lagrange multiplier.

The coefficients $c_{i}$ determined from Eq. (A.38) are used to calculate an intermediate interpolated geometry

 $\mathbf{x}_{m+1}^{\prime}=\sum c_{i}\mathbf{x}_{i}$ (A.39)

 $\mathbf{g}_{m+1}^{\prime}=\sum c_{i}\mathbf{g}_{i}$ (A.40)
 $\mathbf{x}_{m+1}=\mathbf{x}_{m+1}^{\prime}-\mathbf{H}^{-1}\mathbf{g}_{m+1}^{% \prime}\;.$ (A.41)