Skip to main content
`Ctrl`+`K`

# KSPGMRESCGSRefinementType

How the classical (unmodified) Gram-Schmidt is performed in the GMRES solvers

## Synopsis

    typedef enum {
      KSP_GMRES_CGS_REFINE_NEVER,
      KSP_GMRES_CGS_REFINE_IFNEEDED,
      KSP_GMRES_CGS_REFINE_ALWAYS
    } KSPGMRESCGSRefinementType;

## Values

- `KSP_GMRES_CGS_REFINE_NEVER` - one step of classical Gram-Schmidt

- `KSP_GMRES_CGS_REFINE_IFNEEDED` - a second step is performed if the first step does not satisfy some criteria

- `KSP_GMRES_CGS_REFINE_ALWAYS` - always perform two steps

## See Also

KSP: Linear System Solvers, `KSP`, `KSPGMRES`, `KSPGMRESClassicalGramSchmidtOrthogonalization()`, `KSPGMRESSetOrthogonalization()`, `KSPGMRESGetOrthogonalization()`, `KSPGMRESSetCGSRefinementType()`, `KSPGMRESGetCGSRefinementType()`, `KSPGMRESModifiedGramSchmidtOrthogonalization()`

## Level

advanced

## Location

include/petscksp.h

Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages