Next: 4. Tests of the Up: Preconditioned conjugate gradient method Previous: 2. Formulation of the

# 3. The iterative method

We shall now consider the case of a real, localized, non-orthogonal basis set, and assume that a real symmetric generalized eigenvalue problem is to be solved. To obtain the lowest eigenstates, we minimize the objective function which is the sum of eigenvalues (formed by the Rayleigh quotients)
 (10)

subject to the orthogonality constraints of Eq. (8). takes its minimum value when spans the same subspace as the lowest eigenvectors of Eq. (7). Even though the procedure given below is for a single eigenvector update, it can be generalized easily to an -eigenvector (or block) update (see Appendix A).

The derivative of with respect to is

 (11)

Eq. (11) defines a covariant gradient

 (12)

As pointed out by White et al. [19], it is important to consider the tensor property of the search direction. We define the dual basis functions by the conditions
 (13)

The metric tensor can be defined in terms of the dual basis functions where
 (14)

It can be shown that transforms covariant vectors into contravariant vectors and that . Hence we transform the covariant gradient into a contravariant gradient by using the metric tensor where
 (15)

The contravariant gradient can then be used to update the eigenvector coefficients in Eq. (4).

The constraints of Eq. (8) can be maintained (to first order) by ensuring that the search direction obtained from is orthogonal to the space spanned by all the current approximate eigenvectors. By writing

 (16)

and imposing the requirement that for all and , we find
 (17)

We then have
 (18)

and
 (19)

We can use Eq. (18) as the steepest descent direction for constructing the conjugate gradients. However, the convergence of the solution depends strongly on the ratio of the largest and smallest eigenvalues of [14,20]. Since the largest eigenvalues are dominated by the basis functions with large kinetic energy, we precondition the search direction using the kinetic energy matrix where

 (20)

We propose to obtain the preconditioned steepest descent direction in the same manner as in Ref. [14] from the equation
 (21)

which amounts to finding by solving
 (22)

sets the kinetic energy scale for the preconditioning: components of the gradient corresponding to basis functions with kinetic energy much lower than are unaffected by the preconditioning, whereas the contribution of components with kinetic energy much higher than is suppressed. The limit thus corresponds to the case of no preconditioning, while the effect of preconditioning becomes stronger as . Preconditioning which is too aggressive leads to a degradation of performance, and even the wrong answer being obtained, because it can reorder the lowest eigenvectors. We discuss the choice of in Sec. 4. This preconditioning scheme does not rely on the diagonal approximation'' used in Ref. [14], which is appropriate in that case because the overlap between different basis functions is not extensive. One can solve Eq. (22) by using the standard preconditioned conjugate gradient method for linear systems [4,21].

The search direction to be obtained from is also required to be orthogonal to all approximate eigenvectors. By carrying out the same procedure as in Eq. (16), we find the gradient which is orthogonal to all approximate eigenvectors is given by

 (23)

In the conjugate gradient minimization method, will be used to construct a conjugate search direction where
 (24)

where is from the previous iteration. We give the expression for in the Polak-Ribière formula where
 (25)

The tilde signs again signify the quantities from the previous iteration. Line minimization (see Appendix B) of is then performed along the direction where
 (26)

which is orthogonal to all approximate eigenvectors. We can systematically update each eigenvector sequentially until the minimum value of is found. The single eigenvector update procedure described above can be generalized to a block update procedure where all approximate eigenvectors are updated simultaneously. The pseudo-code for the block update procedure can be found in Appendix A.

Next: 4. Tests of the Up: Preconditioned conjugate gradient method Previous: 2. Formulation of the
Peter Haynes