KSPGMRES#
Implements the Generalized Minimal Residual method. (Saad and Schultz, 1986) with restart
Options Database Keys#
- -ksp_gmres_restart
the number of Krylov directions to orthogonalize against
- -ksp_gmres_haptol
sets the tolerance for “happy ending” (exact convergence)
- -ksp_gmres_preallocate
preallocate all the Krylov search directions initially (otherwise groups of vectors are allocated as needed)
- -ksp_gmres_classicalgramschmidt
use classical (unmodified) Gram-Schmidt to orthogonalize against the Krylov space (fast) (the default)
- -ksp_gmres_modifiedgramschmidt
use modified Gram-Schmidt in the orthogonalization (more stable, but slower)
- -ksp_gmres_cgs_refinement_type <refine_never,refine_ifneeded,refine_always>
determine if iterative refinement is used to increase the stability of the classical Gram-Schmidt orthogonalization.
- -ksp_gmres_krylov_monitor
plot the Krylov space generated
Notes#
Left and right preconditioning are supported, but not symmetric preconditioning.
References#
: YOUCEF SAAD AND MARTIN H. SCHULTZ, GMRES: A GENERALIZED MINIMAL RESIDUAL ALGORITHM FOR SOLVING NONSYMMETRIC LINEAR SYSTEMS. SIAM J. ScI. STAT. COMPUT. Vo|. 7, No. 3, July 1986.
See Also#
KSPCreate()
, KSPSetType()
, KSPType
, KSP
, KSPFGMRES
, KSPLGMRES
,
KSPGMRESSetRestart()
, KSPGMRESSetHapTol()
, KSPGMRESSetPreAllocateVectors()
, KSPGMRESSetOrthogonalization()
, KSPGMRESGetOrthogonalization()
,
KSPGMRESClassicalGramSchmidtOrthogonalization()
, KSPGMRESModifiedGramSchmidtOrthogonalization()
,
KSPGMRESCGSRefinementType
, KSPGMRESSetCGSRefinementType()
, KSPGMRESGetCGSRefinementType()
, KSPGMRESMonitorKrylov()
, KSPSetPCSide()
Level#
beginner
Location#
Examples#
src/ksp/ksp/tutorials/ex62.c.html
src/ksp/ksp/tutorials/ex78.c.html
src/ksp/ksp/tutorials/ex7.c.html
src/ksp/ksp/tutorials/ex7f.F90.html
src/ksp/ksp/tutorials/ex8.c.html
src/tao/pde_constrained/tutorials/hyperbolic.c.html
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages