# PCMGSetResidual
Sets the function to be used to calculate the residual on the lth level. 
## Synopsis
```
#include "petscksp.h" 
PetscErrorCode PCMGSetResidual(PC pc, PetscInt l, PetscErrorCode (*residual)(Mat, Vec, Vec, Vec), Mat mat)
```
Logically Collective


## Input Parameters

- ***pc       -*** the multigrid context
- ***l        -*** the level (0 is coarsest) to supply
- ***residual -*** function used to form residual, if none is provided the previously provide one is used, if no
previous one were provided then a default is used
- ***mat      -*** matrix associated with residual





## See Also
 `PCMG`, `PCMGResidualDefault()`

## Level
advanced

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/pc/impls/mg/mgfunc.c.html#PCMGSetResidual">src/ksp/pc/impls/mg/mgfunc.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/pc/impls/mg/mgfunc.c)


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