:orphan:
# KSPHPDDMType
Type of Krylov method used by `KSPHPDDM` 
## Synopsis
```
typedef enum {
  KSP_HPDDM_TYPE_GMRES   = 0,
  KSP_HPDDM_TYPE_BGMRES  = 1,
  KSP_HPDDM_TYPE_CG      = 2,
  KSP_HPDDM_TYPE_BCG     = 3,
  KSP_HPDDM_TYPE_GCRODR  = 4,
  KSP_HPDDM_TYPE_BGCRODR = 5,
  KSP_HPDDM_TYPE_BFBCG   = 6,
  KSP_HPDDM_TYPE_PREONLY = 7
} KSPHPDDMType;
```

## Values

- ***`KSP_HPDDM_TYPE_GMRES` (default) -*** Generalized Minimal Residual method
- ***`KSP_HPDDM_TYPE_BGMRES` -*** block GMRES
- ***`KSP_HPDDM_TYPE_CG` -*** Conjugate Gradient
- ***`KSP_HPDDM_TYPE_BCG` -*** block CG
- ***`KSP_HPDDM_TYPE_GCRODR` -*** Generalized Conjugate Residual method with inner Orthogonalization and Deflated Restarting
- ***`KSP_HPDDM_TYPE_BGCRODR` -*** block GCRODR
- ***`KSP_HPDDM_TYPE_BFBCG` -*** breakdown-free BCG
- ***`KSP_HPDDM_TYPE_PREONLY` -*** apply the preconditioner only





## See Also
 [](ch_ksp), `KSPHPDDM`, `KSPHPDDMSetType()`

## Level
intermediate

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/include/petscksp.h.html#KSPHPDDMType">include/petscksp.h</A>

## Examples
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/tutorials/ex76.c.html">src/ksp/ksp/tutorials/ex76.c</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/tutorials/ex78.c.html">src/ksp/ksp/tutorials/ex78.c</A><BR>


---
[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)  
