petsc-dev 2014-07-25
Report Typos and Errors


Computes the extreme eigenvalues for the preconditioned operator. Called after or during KSPSolve().


#include "petscksp.h" 
PetscErrorCode  KSPComputeEigenvalues(KSP ksp,PetscInt n,PetscReal r[],PetscReal c[],PetscInt *neig)
Not Collective

Input Parameter

ksp - iterative context obtained from KSPCreate()
n - size of arrays r and c. The number of eigenvalues computed (neig) will, in general, be less than this.

Output Parameters

r - real part of computed eigenvalues, provided by user with a dimension of at least n
c - complex part of computed eigenvalues, provided by user with a dimension of at least n
neig - actual number of eigenvalues computed (will be less than or equal to n)

Options Database Keys

-ksp_compute_eigenvalues - Prints eigenvalues to stdout
-ksp_plot_eigenvalues - Plots eigenvalues in an x-window display


The number of eigenvalues estimated depends on the size of the Krylov space generated during the KSPSolve() ; for example, with CG it corresponds to the number of CG iterations, for GMRES it is the number of GMRES iterations SINCE the last restart. Any extra space in r[] and c[] will be ignored.

KSPComputeEigenvalues() does not usually provide accurate estimates; it is intended only for assistance in understanding the convergence of iterative methods, not for eigenanalysis. For accurate computation of eigenvalues we recommend using the excellant package SLEPc.

One must call KSPSetComputeEigenvalues() before calling KSPSetUp() in order for this routine to work correctly.

Many users may just want to use the monitoring routine KSPMonitorSingularValue() (which can be set with option -ksp_monitor_singular_value) to print the singular values at each iteration of the linear solve.


KSP, compute, extreme, singular, values

See Also

KSPSetComputeSingularValues(), KSPMonitorSingularValue(), KSPComputeExtremeSingularValues()

Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages