# KSPSetNormType
Sets the norm that is used for convergence testing. 
## Synopsis
```
#include "petscksp.h" 
PetscErrorCode KSPSetNormType(KSP ksp, KSPNormType normtype)
```
Logically Collective


## Input Parameters

- ***ksp -*** Krylov solver context
- ***normtype -*** one of


```none
   KSP_NORM_NONE - skips computing the norm, this should generally only be used if you are using
                 the Krylov method as a smoother with a fixed small number of iterations.
                 Implicitly sets KSPConvergedSkip() as KSP convergence test.
                 Note that certain algorithms such as KSPGMRES ALWAYS require the norm calculation,
                 for these methods the norms are still computed, they are just not used in
                 the convergence test.
   KSP_NORM_PRECONDITIONED - the default for left preconditioned solves, uses the l2 norm
                 of the preconditioned residual P^{-1}(b - A x)
   KSP_NORM_UNPRECONDITIONED - uses the l2 norm of the true b - Ax residual.
   KSP_NORM_NATURAL - supported  by KSPCG, KSPCR, KSPCGNE, KSPCGS
```



## Options Database Key

- ***-ksp_norm_type <none,preconditioned,unpreconditioned,natural> -*** set `KSP` norm type





## Note
Not all combinations of preconditioner side (see `KSPSetPCSide()`) and norm type are supported by all Krylov methods.
If only one is set, PETSc tries to automatically change the other to find a compatible pair.  If no such combination
is supported, PETSc will generate an error.


## Developer Note
Supported combinations of norm and preconditioner side are set using `KSPSetSupportedNorm()`.


## See Also
 `KSPSetUp()`, `KSPSolve()`, `KSPDestroy()`, `KSPConvergedSkip()`, `KSPSetCheckNormIteration()`, `KSPSetPCSide()`, `KSPGetPCSide()`, `KSPNormType`

## Level
advanced

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/interface/itcreate.c.html#KSPSetNormType">src/ksp/ksp/interface/itcreate.c</A>

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


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/ksp/interface/itcreate.c)


[Index of all KSP routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
