petsc-3.7.7 2017-09-25
Report Typos and Errors

# KSPPIPEFGMRES

Implements the Pipelined Generalized Minimal Residual method. A Flexible, 1-stage pipelined variant of GMRES

This variant is not "explicitly normalized" like PGMRES, and requires a shift parameter.

A heuristic for choosing the shift parameter is the largest eigenvalue of the preconditioned operator.

Only right preconditioning is supported (but this preconditioner may be nonlinear, as with FGMRES)

### Options Database Keys

| -ksp_gmres_restart <restart> | - the number of Krylov directions to orthogonalize against
| -ksp_gmres_haptol <tol> | - sets the tolerance for "happy ending" (exact convergence)
| -ksp_gmres_preallocate | - preallocate all the Krylov search directions initially (otherwise groups of
| -ksp_pipefgmres_shift | - the shift to use (defaults to 1. See KSPPIPEFGMRESSetShift() vectors are allocated as needed)
| -ksp_gmres_krylov_monitor | - plot the Krylov space generated

### Notes

MPI configuration may be necessary for reductions to make asynchronous progress, which is important for performance of pipelined methods. See the FAQ on the PETSc website for details.

Developer Notes: This object is subclassed off of KSPGMRES

### See Also

KSPCreate(), KSPSetType(), KSPType (for list of available types), KSP, KSPLGMRES, KSPPIPECG, KSPPIPECR, KSPPGMRES, KSPFGMRES
KSPGMRESSetRestart(), KSPGMRESSetHapTol(), KSPGMRESSetPreAllocateVectors(), KSPGMRESMonitorKrylov(), KSPPIPEGMRESSetShift()

Level:beginner
Location:src/ksp/ksp/impls/gmres/pipefgmres/pipefgmres.c
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages