|-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|
This variant is not "explicitly normalized" like KSPPGMRES, 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/variable/inexact, as with KSPFGMRES). 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.