SLEPc


SLEPc is a software library for the parallel computation of eigenvalues and eigenvectors of large, sparse matrices. It can be seen as a module of PETSc that provides solvers for different types of eigenproblems, including linear and nonlinear, as well as the SVD. Recent versions also include support for matrix functions. It uses the MPI standard for parallelization. Both real and complex arithmetic are supported, with single, double and quadruple precision.
When using SLEPc, the application programmer can use any of the PETSc's data structures and solvers. Other PETSc features are incorporated into SLEPc as well, such as command-line option setting, automatic profiling, error checking, portability to virtually all computing platforms, etc.

Components

EPS provides iterative algorithms for linear eigenvalue problems.
ST encapsulates spectral transformations and other preconditioners for eigenvalue problems.
SVD contains solvers for the singular value decomposition as well as the generalized singular value decomposition.
  • Solvers based on the cross-product matrix or the cyclic matrix, that rely on EPS solvers.
  • Specific solvers based on bidiagonalization such as Golub-Kahan-Lanczos and a thick-restarted variant.
PEP is intended for polynomial eigenproblems, including the quadratic eigenvalue problem.
  • Solvers based on explicit linearization, that rely on EPS solvers.
  • Solvers that perform the linearization implicitly in a memory-efficient way, such as TOAR.
  • A Jacobi-Davidson solver for PEP.
NEP provides functionality for the solution of the nonlinear eigenproblem.
MFN can be used to compute the action of a matrix function on a vector.
  • A restarted Krylov solver.