SLEPc

From HandWiki
SLEPc
Stable release
3.20 / 29 September 2023; 9 months ago (2023-09-29)
Operating systemLinux, Unix, Mac OS X, Windows
Available inC (main language),C++, FORTRAN, Python
TypeScientific simulation software
LicenseBSD 2-clause license
Websiteslepc.upv.es

SLEPc[1] 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 (standard and generalized) and nonlinear (quadratic, polynomial and general), 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.

  • Krylov methods such as Krylov-Schur, Arnoldi and Lanczos.
  • Davidson methods such as Generalized Davidson and Jacobi-Davidson.
  • Conjugate gradient methods such as LOBPCG.
  • A contour integral solver (CISS).
  • Interface to some external eigensolvers, such as ARPACK and BLOPEX.
  • Customization options include: number of wanted eigenvalues, tolerance, size of the employed subspaces, part of the spectrum of interest.

ST encapsulates spectral transformations and other preconditioners for eigenvalue problems.

  • Shift-and-invert and Cayley spectral transformations.
  • Support for preconditioned eigensolvers (such as Jacobi-Davidson) by using the preconditioners provided by PETSc.
  • Polynomial filters for interior eigenvalues.

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.

  • Basic solvers such as residual inverse iteration and successive linear problems.
  • A solver based on polynomial interpolation that relies on PEP solvers.
  • A solver based on rational interpolation (NLEIGS).

MFN can be used to compute the action of a matrix function on a vector.

  • A restarted Krylov solver.

See also

References

  1. V. Hernandez; J. E. Roman; V. Vidal (2005). "SLEPc: A Scalable and Flexible Toolkit for the Solution of Eigenvalue Problems". ACM Transactions on Mathematical Software 31 (3): 351–362. doi:10.1145/1089014.1089019. http://dl.acm.org/citation.cfm?doid=1089014.1089019. 

External links