Residual minimization method
Algorithm
Initial guess for wave functions (\(\tilde{\psi}_n\)).
Orthogonalize wavefunctions (make sure \(\langle \tilde{\psi}_n | \hat{S} | \tilde{\psi}_m \rangle = \delta_{nm}\)).
Calculate density (\(\tilde{n}\), \(D_{ij}^a\)).
Calculate potential (\(\tilde{v}\), \(\Delta H_{ij}^a\)).
Apply hamiltonian (\(\hat{H}\tilde{\psi}_n\)).
Subspace diagonalization (rotate \(\tilde{\psi}_n\) so that \(\langle \tilde{\psi}_n | \hat{H} | \tilde{\psi}_m \rangle = \delta_{nm} \epsilon_n\)).
Calculate residuals (\(R_n = \hat{H}\tilde{\psi}_n - \epsilon_n \hat{S}\tilde{\psi}_n\)).
Improve wave functions using the RMM-DIIS algorithm (see below).
Back to (2).
RMM-DIIS step
For each wave function we calculate the residual:
New improved wave function: \(\tilde{\psi}_n' = \tilde{\psi}_n + \lambda \hat{P} R_n\), where \(\hat{P}\) is a preconditioner. Find step length \(\lambda\) by minimizing the norm of:
Since we already have \(R_n'\), we might as well use it to take an extra step (with the same step length as for the first step):
See [Kresse96] for details.
Preconditioning
The ideal preconditioner would be:
For the short wavelength parts of the residuals, \(\hat{H} - \epsilon_n \hat{S}\) will be dominated by the kinetic energy operator, so we have approximately \(\hat{P} \simeq -\hat{T}^{-1}\).
We calculate preconditioned residuals (\(\tilde{R}_n = \hat{P} R_n\)) by solving \(\hat{T} \tilde{R}_n = -R_n\) or equivalently
approximately using multigrid techniques as described in [Briggs95].
References
G. Kresse, J. Furthmüller: Phys. Rev. B 54, 11169 - 11186 (1996) “Efficient iterative schemes for ab initio total-energy calculations using a plane-wave basis set”
E. L. Briggs, D. J. Sullivan and J. Bernholc: Phys. Rev. B 52, R5471 (1995), “Large Scale Electronic Structure Calculations with Multigrid Acceleration”