# PC
Abstract PETSc object that manages all preconditioners including direct solvers such as `PCLU` 
## Synopsis
```
typedef struct _p_PC *PC;
```



## See Also
 [](sec_pc), `PCCreate()`, `PCSetType()`, `PCType`

## Level
beginner

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/include/petscpctypes.h.html#PC">include/petscpctypes.h</A>

## Examples
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/impls/stag/tutorials/ex4.c.html">src/dm/impls/stag/tutorials/ex4.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/tutorials/ex100.c.html">src/ksp/ksp/tutorials/ex100.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/tutorials/ex12.c.html">src/ksp/ksp/tutorials/ex12.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/tutorials/ex15.c.html">src/ksp/ksp/tutorials/ex15.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/tutorials/ex60.c.html">src/ksp/ksp/tutorials/ex60.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/tutorials/ex61f.F90.html">src/ksp/ksp/tutorials/ex61f.F90.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/tutorials/ex64.c.html">src/ksp/ksp/tutorials/ex64.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/snes/tutorials/ex3.c.html">src/snes/tutorials/ex3.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/snes/tutorials/ex69.c.html">src/snes/tutorials/ex69.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/snes/tutorials/ex70.c.html">src/snes/tutorials/ex70.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/tao/pde_constrained/tutorials/hyperbolic.c.html">src/tao/pde_constrained/tutorials/hyperbolic.c.html</A><BR>

## Implementations

<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/pc/impls/telescope/telescope.c.html#PCTelescopeSetUp_default">PCTelescopeSetUp_default in src/ksp/pc/impls/telescope/telescope.c</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/pc/impls/telescope/telescope.c.html#PCTelescopeMatCreate_default">PCTelescopeMatCreate_default in src/ksp/pc/impls/telescope/telescope.c</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/pc/impls/telescope/telescope.c.html#PCTelescopeSubNullSpaceCreate_Telescope">PCTelescopeSubNullSpaceCreate_Telescope in src/ksp/pc/impls/telescope/telescope.c</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/pc/impls/telescope/telescope.c.html#PCTelescopeMatNullSpaceCreate_default">PCTelescopeMatNullSpaceCreate_default in src/ksp/pc/impls/telescope/telescope.c</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/pc/impls/telescope/telescope_coarsedm.c.html#PCTelescopeSetUp_CoarseDM">PCTelescopeSetUp_CoarseDM in src/ksp/pc/impls/telescope/telescope_coarsedm.c</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/pc/impls/telescope/telescope_coarsedm.c.html#PCTelescopeSubNullSpaceCreate_CoarseDM">PCTelescopeSubNullSpaceCreate_CoarseDM in src/ksp/pc/impls/telescope/telescope_coarsedm.c</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/pc/impls/telescope/telescope_coarsedm.c.html#PCTelescopeMatNullSpaceCreate_CoarseDM">PCTelescopeMatNullSpaceCreate_CoarseDM in src/ksp/pc/impls/telescope/telescope_coarsedm.c</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/pc/impls/telescope/telescope_dmda.c.html#PCTelescopeSetUp_dmda">PCTelescopeSetUp_dmda in src/ksp/pc/impls/telescope/telescope_dmda.c</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/pc/impls/telescope/telescope_dmda.c.html#PCTelescopeMatCreate_dmda">PCTelescopeMatCreate_dmda in src/ksp/pc/impls/telescope/telescope_dmda.c</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/pc/impls/telescope/telescope_dmda.c.html#PCTelescopeMatNullSpaceCreate_dmda">PCTelescopeMatNullSpaceCreate_dmda in src/ksp/pc/impls/telescope/telescope_dmda.c</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/include/petsc/private/pcimpl.h.html#_p_PC">_p_PC in include/petsc/private/pcimpl.h</A><BR>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscpctypes.h)


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