# KSPComputeEigenvalues

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

### Synopsis

    #include "petscksp.h"
    PetscErrorCode PETSCKSP_DLLEXPORT 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
| c | - complex part of computed eigenvalues
| neig | - 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

### Notes

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.

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 KSPSingularValueMonitor() (which can be set with option -ksp_singmonitor) to print the singular values at each iteration of the linear solve.

### Keywords

KSP, compute, extreme, singular, values

### See Also

KSPSetComputeSingularValues(), KSPSingularValueMonitor(), KSPComputeExtremeSingularValues()

Level:advanced
Location:src/ksp/ksp/interface/itfunc.c
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages