:orphan: # KSP_GMRES_CGS_REFINE_ALWAYS Do two steps of the classical (unmodified) Gram-Schmidt process. ## Notes This is roughly twice the cost of `KSP_GMRES_CGS_REFINE_NEVER` because it performs the process twice but it saves the extra norm calculation needed by `KSP_GMRES_CGS_REFINE_IFNEEDED`. You should only use this if you absolutely know that the iterative refinement is needed. ## See Also [](ch_ksp), `KSPGMRESCGSRefinementType`, `KSPGMRESClassicalGramSchmidtOrthogonalization()`, `KSPGMRESSetOrthogonalization()`, `KSP`, `KSPGMRESGetOrthogonalization()`, `KSPGMRESSetCGSRefinementType()`, `KSPGMRESGetCGSRefinementType()`, `KSP_GMRES_CGS_REFINE_IFNEEDED`, `KSP_GMRES_CGS_REFINE_ALWAYS`, `KSPGMRESModifiedGramSchmidtOrthogonalization()` ## Level advanced ## Location include/petscksp.h --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscksp.h) [Index of all KSP routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)