SLEPc
is a
software library
In computing, a library is a collection of resources that can be leveraged during software development to implement a computer program. Commonly, a library consists of executable code such as compiled functions and classes, or a library can ...
for the parallel computation of
eigenvalues and eigenvectors
In linear algebra, an eigenvector ( ) or characteristic vector is a vector that has its direction unchanged (or reversed) by a given linear transformation. More precisely, an eigenvector \mathbf v of a linear transformation T is scaled by a ...
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
A general officer is an Officer (armed forces), officer of high rank in the army, armies, and in some nations' air force, air and space forces, marines or naval infantry.
In some usages, the term "general officer" refers to a rank above colone ...
), as well as the
SVD. Recent versions also include support for
matrix function
In mathematics, every analytic function can be used for defining a matrix function that maps square matrices with complex entries to square matrices of the same size.
This is used for defining the exponential of a matrix, which is involved in th ...
s. It uses the
MPI
MPI or Mpi may refer to:
Science and technology Biology and medicine
* Magnetic particle imaging, a tomographic technique
* Myocardial perfusion imaging, a medical procedure that illustrates heart function
* Mannose phosphate isomerase, an enzyme ...
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
In linear algebra, the singular value decomposition (SVD) is a Matrix decomposition, factorization of a real number, real or complex number, complex matrix (mathematics), matrix into a rotation, followed by a rescaling followed by another rota ...
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
In mathematics, every analytic function can be used for defining a matrix function that maps square matrices with complex entries to square matrices of the same size.
This is used for defining the exponential of a matrix, which is involved in th ...
on a vector.
* A restarted Krylov solver.
See also
*
Portable, Extensible Toolkit for Scientific Computation (PETSc)
*
List of numerical libraries
References
{{Reflist
External links
The Official SLEPc web site
Numerical libraries
Numerical linear algebra
Scientific simulation software