Preconditioned Conjugate Gradient Methods for Eigenproblems

The LOBPCG (Locally Optimal Block Preconditioned Conjugate Gradient) code is now publicly available as as a part of the BLOPEX package. MATLAB sources are also available directly from MathWorks.

Main features:

a matrix-free iterative method for computing several extreme eigenpairs
of symmetric positive generalized eigenproblems;

a user-defined symmetric positive preconditioner (a good preconditioner
for a stiffness matrix works well for the corresponding eigenvalue problem,
too!);

robustness with respect to random initial approximations, variable
preconditioners, and ill-conditioning (up to 10^16) of the stiffness matrix;

apparently optimal convergence speed.

Numerical comparisons suggest that LOBPCG is a genuine analog for eigenproblems of the standard preconditioned conjugate gradient method for symmetric linear systems.

The LOBPCG algorithm is presented in the paper Andrew Knyazev, Toward the Optimal Preconditioned Eigensolver: Locally Optimal Block Preconditioned Conjugate Gradient Method. SIAM Journal on Scientific Computing 23 (2001), no. 2, pp. 517-541.