Abstract
The computation of a small group of interior eigenstates of a large matrix H is an important problem in chemical physics. This general problem is approached in this study through the application of a two-layer iteration scheme. The design of the outer loop is based upon the strategy developed by Ericsson and Ruhe [Math. Comput. 35, 1251 (1980)]. Starting with a variable input energy E, this loop uses the Lanczos algorithm (with no reorthogonalization) to develop a reduced tridiagonal representation of the total Green function G(E). Diagonalization of this small matrix (denoted T) yields, through a simple mapping, excellent approximations to the eigenvalues of H that lie near energy E. The inner iteration loop of the algorithm computes the matrix-vector product G(E)Qj, where Qj is one of the Lanczos vectors. Both direct and indirect methods may be used for this operation. The direct method uses a perturbative expansion of the Green function, while the indirect method is based upon the iterative solution of a linear algebraic system. The indirect method yields a parametrized polynomial representation of the Green function, with the coefficients chosen variationally. The method is adaptive in the sense that these coefficients change during the course of the Lanczos iteration. Convergence of these iterative methods is improved significantly by developing the Green function in the partial adiabatic representation. Conversion to this representation involves diagonalization of the diagonal block of H involving those states whose zeroth-order energies surround the energy of interest. The two-layer scheme is applied to a model Hamiltonian matrix that has a variable coupling strength within and between a number of dense bands of states. With this scheme it is possible to accurately compute a group of eigenstates near energy E in just a few Lanczos iteration steps (