next up previous contents
Next: 9.1.2 Simple Davidson-block iteration Up: 9.1 Algorithms used in Previous: 9.1 Algorithms used in

9.1.1 Preconditioning

The idea is to find a matrix which multiplied with the residual vector gives the exact error in the wavefunction. Formally this matrix can be written down and is given by


where tex2html_wrap_inline4849 is the exact eigenvalue for the band in interest. Actually the evaluation of this matrix is not possible, recognizing that the kinetic energy dominates the Hamiltonian for large G-vectors (i.e. tex2html_wrap_inline4853 ), it is a good idea to approximate the matrix by a diagonal function which converges to tex2html_wrap_inline4855 for large G vectors, and posses a constant value for small G vectors. We actually use the preconditioning function proposed by Teter et. al.[18]


with tex2html_wrap_inline4857 being the kinetic energy of the residual vector. The preconditioned residual vector is then simply


Mon Mar 29 10:38:29 MEST 1999