SLEPc Users Manual#
J. E. Roman 1, C. Campos 1,2, L. Dalcin 3, E. Romero 1,4, A. Tomas 1
1 Universitat Politècnica de València
2 Universitat de València
3 Extreme Computing Research Center, King Abdullah University of Science and Technology
4 Jefferson Lab
Abstract
This document describes SLEPc, the Scalable Library for Eigenvalue Problem Computations, a software package for the solution of large sparse eigenproblems on parallel computers. It can be used for the solution of various types of eigenvalue problems, including linear and nonlinear, as well as other related problems such as the singular value decomposition (see a summary of supported problem classes in table SLEPc modules. SLEPc is a general library in the sense that it covers both Hermitian and non-Hermitian problems, with either real or complex arithmetic.
The emphasis of the software is on methods and techniques appropriate for problems in which the associated matrices are large and sparse, for example, those arising after the discretization of partial differential equations. Thus, most of the methods offered by the library are projection methods, including different variants of Krylov and Davidson iterations. In addition to its own solvers, SLEPc provides transparent access to some external software packages such as ARPACK. These packages are optional and their installation is not required to use SLEPc, see section Wrappers to External Libraries for details. Apart from the solvers, SLEPc also provides built-in support for some operations commonly used in the context of eigenvalue computations, such as preconditioning or the shift-and-invert spectral transformation.
SLEPc is built on top of PETSc, the Portable, Extensible Toolkit for Scientific Computation [Balay et al., 2025]. It can be considered an extension of PETSc providing all the functionality necessary for the solution of eigenvalue problems. This means that PETSc must be previously installed in order to use SLEPc. PETSc users will find SLEPc very easy to use, since it enforces the same programming paradigm. Those readers that are not acquainted with PETSc are highly recommended to familiarize with it before proceeding with SLEPc.
Additional Documentation
This manual provides a general description of SLEPc. In addition, manual pages for individual routines are included in the distribution file in hypertext format, and are also available on-line at https://slepc.upv.es/documentation. These manual pages provide hyperlinked access to the source code and enable easy movement among related topics. Finally, there are also several hands-on exercises available, which are intended for learning the basic concepts easily.
How to Read this Manual
Users that are already familiar with PETSc can read chapter Getting Started very fast. Section Eigenvalue Problems provides a brief overview of eigenproblems and the general concepts used by eigensolvers, so it can be skipped by experienced users. Chapters EPS: Eigenvalue Problem Solver–MFN: Matrix Function describe the main SLEPc functionality. Some of them include an advanced usage section that can be skipped at a first reading. Finally, chapter Additional Information contains less important, additional information.
SLEPc Technical Reports
The information contained in this manual is complemented by a set of Technical Reports, which provide technical details that normal users typically do not need to know but may be useful for experts in order to identify the particular method implemented in SLEPc. These reports are not included in the SLEPc distribution file but can be accessed via the SLEPc web site.
Acknowledgments
The current version contains code contributed by: A. Lamas Daviña (CUDA code), F. Alvarruiz (restarted Lanczos for the GSVD, structured BSE solvers), B. Mellado-Pinto (structured BSE solvers), Y. Maeda, T. Sakurai (CISS solvers), M. Moldaschl, W. Gansterer (BDC subroutines), F. Kong (nonlinear inverse iteration), H. Fang, Y. Saad (FILTLAN
polynomial filter).
Development of SLEPc has been partially funded by the following grants:
Innovation Study ISOLV-BSE has received funding through the Inno4scale project, which is funded by the European High-Performance Computing Joint Undertaking (JU) under Grant Agreement No 101118139. The JU receives support from the European Union’s Horizon Europe Programme.
Agencia Estatal de Investigación (Spain), grant no. PID2022-139568NB-I00, PI: José E. Román.
Agencia Estatal de Investigación (Spain), grant no. PID2019-107379RB-I00, PI: José E. Román.
Agencia Estatal de Investigación (Spain), grant no. TIN2016-75985-P, PI: José E. Román.
Ministerio de Economı́a y Comp. (Spain), grant no. TIN2013-41049-P, PI: José E. Román.
Ministerio de Ciencia e Innovación (Spain), grant no. TIN2009-07519, PI: José E. Román.
Valencian Regional Government, grant no. GV06/091, PI: José E. Román.
Valencian Regional Government, grant no. CTIDB/2002/54, PI: Vicente Hernández.
Supported Problem Classes
The following table provides an overview of the functionality offered by SLEPc, organized by problem classes.
Problem class |
Model equation |
Module |
Chapter |
---|---|---|---|
Linear eigenvalue problem |
\(Ax=\lambda x,\quad Ax=\lambda Bx\) |
||
Quadratic eigenvalue problem |
\((K+\lambda C+\lambda^2M)x=0\) |
– |
– |
Polynomial eigenvalue problem |
\((A_0+\lambda A_1+\cdots+\lambda^dA_d)x=0\) |
||
Nonlinear eigenvalue problem |
\(T(\lambda)x=0\) |
||
Singular value decomposition |
\(Av=\sigma u\) |
||
Matrix function (action of) |
\(y=f(A)v\) |
||
Linear matrix equation |
\(AXE+DXB=C\) |
See Notes |
In order to solve a given problem, one should create a solver object corresponding to the solver class (module) that better fits the problem (the less general one; e.g., we do not recommend using NEP
to solve a linear eigenproblem).
Notes
Most users are typically interested in linear eigenproblems only.
In each problem class there may exist several subclasses (problem types in SLEPc terminology), for instance symmetric-definite generalized eigenproblem in
EPS
.The solver class (module) is named after the problem class. For historical reasons, the one for linear eigenvalue problems is called
EPS
rather thanLEP
.In addition to the SVD shown in the table, the
SVD
module also supports other related problems such as the GSVD and the HSVD.In previous SLEPc versions there was a
QEP
module for quadratic eigenproblems. It has been replaced byPEP
.For the action of a matrix function (
MFN
), in SLEPc we focus on methods that are closely related to methods for eigenvalue problems.The solver class
LME
is still experimental and it is not covered in this manual yet.
Footnotes
Satish Balay, Shrirang Abhyankar, Mark F. Adams, Steven Benson, Jed Brown, Peter Brune, Kris Buschelman, Emil Constantinescu, Lisandro Dalcin, Alp Dener, Victor Eijkhout, Jacob Faibussowitsch, William D. Gropp, Václav Hapla, Tobin Isaac, Pierre Jolivet, Dmitry Karpeev, Dinesh Kaushik, Matthew G. Knepley, Fande Kong, Scott Kruger, Dave A. May, Lois Curfman McInnes, Richard Tran Mills, Lawrence Mitchell, Todd Munson, Jose E. Roman, Karl Rupp, Patrick Sanan, Jason Sarich, Barry F. Smith, Hansol Suh, Stefano Zampini, Hong Zhang, Hong Zhang, and Junchao Zhang. PETSc/TAO Users Manual. 2025. doi:10.2172/2476320.