Next: Appendix B Up: Preconditioned conjugate gradient method Previous: Acknowledgements

# Appendix A

The pseudo-code for solving the generalized eigenvalue problem based on the block update procedure is as follows, where , and denote the Hamiltonian, overlap and kinetic energy matrices respectively. Let be an matrix where is the -th column of , and labels the iteration.

The procedure is then:



Choose

Choose convergence tolerance

Orthonormalize  (Gram-Schmidt)

Calculate

Choose  such that

while  do

Solve

(see Appendix B)

Orthonormalize  (Gram-Schmidt)

Calculate

end


In some applications, individual eigenvalues are needed. They can be obtained by a subspace rotation method where we simply need to diagonalize the matrix . If diagonalizes such that diag( ), we obtain the individual eigenvalues with corresponding eigenvectors .

Peter Haynes