DIIS

DIIS (Direct Inversion of Iterative Subspace) is a common algorithm for quantum chemistry which accelerates convergence of an SCF Algorithm, by making up a linear combination of the first cycles of iteration indicated by some error vector/matrix. It was first used for quantum chemistry by Peter Pulay et al.

Each iteration of SCF gives up a trial vector $$p_i$$. We assume the final solution $$p^f$$ is approximately a sum of the previous iterations,


 * $$p = \sum_i^m c_ip^i $$

from which it follows that,


 * $$\sum_i^m c_i = 1$$

We can then minimise the square of the residual vector with the above constraint held constant by a Lagrange multiplier $$\lambda$$,


 * $$L=cBc-\lambda (1-\sum_i^m c_i)$$.