Changes in Version 3.3
New EPS solver: Rayleigh quotient conjugate gradient (RQCG).
This is the first CG-type eigensolver in SLEPc. It can be used for computing
smallest eigenvalues of symmetric-definite matrix pairs without inverting
any matrix (a preconditioner can be used instead).
Added a customizable parameter to specify how to restart in Krylov-Schur, see
Tunning this parameter may speed up convergence significantly in some cases.
Added support for generalized symmetric-indefinite eigenproblems in
Krylov-Schur and the Davidson solvers.
To use this, set the problem type to EPS_GHIEP.
New variant of Generalized Davidson for generalized eigenproblems that
expands the subspace with two vectors (GD2). It can be activated with
Added experimental support for arbitrary selection of eigenpairs, where the
solver chooses the most wanted ones based on a user-defined function of
the eigenvectors rather than simply sorting the eigenvalues.
Added a new auxiliary class DS: Direct Solver (or Dense System), which is
intended for developers rather than normal users.
Changes in Version 3.2
Computational intervals for symmetric eigenproblems, that activate a spectrum slicing mechanism to obtain all eigenvalues in a given interval, see EPSSetInterval.
Partial support (experimental) for GPU computing via PETSc's VECCUSP and MATAIJCUSP.
Improved performance and robustness of GD and JD solvers in (generalized) Hermitian problems.
Performance improvement of solvers with explicit matrix such as SVDCYCLIC and QEPLINEAR
(now use matrix preallocation).
Added Matlab interface.
Added support for parallel builds with CMake.
Added support for quad precision (configure PETSc --with-precision=__float128 with gcc-4.6 or later).
Interface changes: now all XXXDestroy() routines take a pointer to the object.
Changes in Version 3.1
New EPS solvers: Generalized Davidson (GD) and Jacobi-Davidson (JD). These are the first
eigensolvers in SLEPc that belong to the class of preconditioned eigensolvers.
Added a new instance of ST called STPRECOND. This is not really a spectral transformation
but rather a convenient way of handling the preconditioners in the new eigensolvers.
Added a new class QEP for solving quadratic eigenvalue problems. Currently, it contains
two solvers: the Q-Arnoldi method and another one that provides a linearization of the
problem and then invokes an eigensolver from EPS.
Added support for balancing of non-Hermitian problems, see EPSSetBalance.
Improved sorting of eigenvalues, now with the possibility of sorting with respect to
a target value. With shift-and-invert, now the ordering
of eigenvalues is the expected one, relative to the target.
Also added support for user-defined orderings. For details, see EPSSetWhichEigenpairs.
Added support for user-defined convergence tests, see EPSSetConvergenceTest.
Several predefined convergence criteria are available. Also, there is a new
flag for computing the true residual for the convergence test, see EPSSetTrueResidual.
Monitors have been reorganized and now more possibilities are available. See the Users
Manual for details.
Changes in user interface: EPSAttachDeflationSpace has been renamed to EPSSetDeflationSpace,
EPSSetLeftVectorsWanted replaces EPSSetClass for requesting left eigenvectors;
Change in arguments: EPSSetDeflationSpace; Deprecated function: EPSSetInitialVector,
replaced by EPSSetInitialSpace; STSINV has been renamed to STSINVERT.
Changes in Version 3.0.0
Released under GNU LGPL license.
Improved support for the case that many eigenpairs are to be
computed. This is especially so in the default eigensolver (Krylov-Schur)
for symmetric problems, as well as for SVD computations. The user
can control the behaviour of the solver with a new parameter, mpd
Support for harmonic projection in the default eigensolver (Krylov-Schur),
see EPSSetExtraction. This can be useful for computing interior or
rightmost eigenvalues without the need of a spectral transformation.
Memory usage has been optimized in most solvers. In some cases,
memory requirements have been halved with respect to the previous
In the spectral transformations (ST) the linear solver used internally
has been changed to a direct solver by default. The user can still
employ an iterative linear solver by setting the appropriate options.
Added better support for Fortran 90.
Improved support for 'make install', see the Users Manual for details.
Changes in Version 2.3.3
A new solver class, SVD, has been introduced for computing the singular
value decomposition of a rectangular matrix. The structure of this new
type is very similar to that of EPS, and it simplifies the computation
of singular values and vectors. A complete chapter in the users manual
is devoted to SVD.
Better support for generalized problems. Eigenvector purification has
been added to improve accuracy in the case of generalized eigenproblems
with singular B. Also, a new problem type (EPS_PGNHEP) has been added
for better addressing generalized problems in which A is non-Hermitian
but B is Hermitian and positive definite.
Now 'make install' is available thus facilitating system-wide installation.
Changes in Version 2.3.2
A new 'krylovschur' eigensolver has been added, that implements the
Krylov-Schur method. This method is related to the Arnoldi and Lanczos
algorithms, but incorporates a new restarting scheme that makes it
competitive with respect to implicit restart. This eigensolver is now
the default for both symmetric and non-symmetric problems.
A new wrapper has been developed to interface with the PRIMME library.
This library provides Davidson-type eigensolvers.
The 'lanczos' solver has been improved, in particular, the different
reorthogonalization strategies are now more robust.
Now the 'arnoldi' eigensolver supports the computation of eigenvalues
other than those of largest magnitude.
EPSGetLinearIterations has been replaced with EPSGetOperationCounters,
providing more statistics about the solution process.
EPSGetIterationNumber now returns the number corresponding to outer
The 'lobpcg' wrapper has been renamed to 'blopex'.
The 'planso' wrapper has been removed since PLANSO is no longer being
Changes in Version 2.3.1
New variant of the Arnoldi method added to the 'arnoldi' eigensolver
(with delayed reorthogonalization, see EPSArnoldiSetDelayed).
Several optimizations for improving performance and scalability, in particular
the orthogonalization steps.
Changes in Version 2.3.0
New 'lanczos' eigensolver, an explicitly restarted version of the Lanczos method
for symmetric eigenproblems. Allows the user to choose among 5 reorthogonalization
New spectrum folding spectral transformation.
New configuration system, similar to PETSc's configure.py.
New interface to an external eigensolver: LOBPCG implemented in Hypre.
Added graphical convergence monitor (with -eps_xmonitor).
Improvement of Arnoldi solver in terms of efficiency and robustness.
Now the 'lapack' solver uses specific Lapack routines for symmetric and generalized problems.
Bug fix in the ARPACK interface.
Changes in Version 2.2.1
- The 'power' eigensolver has been replaced by a simpler implementation.
- The 'rqi' eigensolver has been removed. Now the Rayleigh Quotient Iteration is embedded in the 'power' method.
- The 'subspace' eigensolver has been rewritten. Now it follows the SRRIT implementation, which is much faster than the old one.
- The 'arnoldi' eigensolver has been re-implemented as well. The new implementation is much more robust and efficient.
- A new Spectral Tranformation (ST) has been added: the generalized Cayley transform.
- Support for user-provided deflation subspaces has been added (see EPSAttachDeflationSpace).
- Support for preservation of symmetry in eigensolvers. For this feature, the user must explicitly call EPSSetProblemType in symmetric problems.
- The two types of monitors (error estimates and values) have been merged in a single one.
- New function EPSGetInvariantSubspace.
- Better support for spectrum slicing in 'blzpack'.
Changes in Version 2.2.0
- EPSSolve does not return the number of iterations. Use EPSGetIterationNumber for this purpose.
- EPSGetSolution has been replaced by EPSGetEigenpair with a cleaner interface.
- EPSComputeError has been replaced by EPSComputeRelativeError and EPSComputeResidualNorm with better error computing for zero eigenvalues. These functions now are oriented to single eigenpairs, as well as EPSGetErrorEstimate.
- The possibilities of EPSSetWhichEigenpairs have been reduced and now are more coherent across problem types.
- Removed STNONE spectral transformation. The default of STSHIFT with 0 shift is equivalent.
- Added STSinvertSetMatStructure to optimize performance of MatAXPY in shift-and-invert transformation.
- Classical and modified Gram-Schmidt orthogonalization use iterative refinement, with user options for parameter adjustment.
Changes in Version 2.1.5
- Added call to MatGetInertia
in BLZPACK interface.