:orphan:
# PCCreate
Creates a preconditioner context, `PC`
## Synopsis
```
#include "petscksp.h"
PetscErrorCode PCCreate(MPI_Comm comm, PC *newpc)
```
Collective
## Input Parameter
- ***comm -*** MPI communicator
## Output Parameter
- ***pc -*** location to put the preconditioner context
## Note
The default preconditioner for sparse matrices is `PCILU` or `PCICC` with 0 fill on one process and block Jacobi (`PCBJACOBI`) with `PCILU` or `PCICC`
in parallel. For dense matrices it is always `PCNONE`.
## See Also
`PC`, `PCSetUp()`, `PCApply()`, `PCDestroy()`
## Level
developer
## Location
src/ksp/pc/interface/precon.c
## Implementations
PCCreate_AMGX in src/ksp/pc/impls/amgx/amgx.cxx
PCCreate_ASM in src/ksp/pc/impls/asm/asm.c
PCCreate_BDDC in src/ksp/pc/impls/bddc/bddc.c
PCCreate_BJacobi in src/ksp/pc/impls/bjacobi/bjacobi.c
PCCreate_BJKOKKOS in src/ksp/pc/impls/bjacobi/bjkokkos/bjkokkos.kokkos.cxx
PCCreate_CHOWILUVIENNACL in src/ksp/pc/impls/chowiluviennacl/chowiluviennacl.cxx
PCCreate_Composite in src/ksp/pc/impls/composite/composite.c
PCCreate_CP in src/ksp/pc/impls/cp/cp.c
PCCreate_Deflation in src/ksp/pc/impls/deflation/deflation.c
PCCreate_Eisenstat in src/ksp/pc/impls/eisens/eisen.c
PCCreate_Cholesky in src/ksp/pc/impls/factor/cholesky/cholesky.c
PCCreate_ICC in src/ksp/pc/impls/factor/icc/icc.c
PCCreate_ILU in src/ksp/pc/impls/factor/ilu/ilu.c
PCCreate_LU in src/ksp/pc/impls/factor/lu/lu.c
PCCreate_QR in src/ksp/pc/impls/factor/qr/qr.c
PCCreate_FieldSplit in src/ksp/pc/impls/fieldsplit/fieldsplit.c
PCCreate_Galerkin in src/ksp/pc/impls/galerkin/galerkin.c
PCCreate_GAMG in src/ksp/pc/impls/gamg/gamg.c
PCCreate_GASM in src/ksp/pc/impls/gasm/gasm.c
PCCreate_H2OPUS in src/ksp/pc/impls/h2opus/pch2opus.c
PCCreate_HMG in src/ksp/pc/impls/hmg/hmg.c
PCCreate_HPDDM in src/ksp/pc/impls/hpddm/pchpddm.cxx
PCCreate_HYPRE in src/ksp/pc/impls/hypre/hypre.c
PCCreate_PFMG in src/ksp/pc/impls/hypre/hypre.c
PCCreate_SysPFMG in src/ksp/pc/impls/hypre/hypre.c
PCCreate_SMG in src/ksp/pc/impls/hypre/hypre.c
PCCreate_NN in src/ksp/pc/impls/is/nn/nn.c
PCCreate_Jacobi in src/ksp/pc/impls/jacobi/jacobi.c
PCCreate_Kaczmarz in src/ksp/pc/impls/kaczmarz/kaczmarz.c
PCCreate_KSP in src/ksp/pc/impls/ksp/pcksp.c
PCCreate_LMVM in src/ksp/pc/impls/lmvm/lmvmpc.c
PCCreate_LSC in src/ksp/pc/impls/lsc/lsc.c
PCCreate_Mat in src/ksp/pc/impls/mat/pcmat.c
PCCreate_MG in src/ksp/pc/impls/mg/mg.c
PCCreate_ML in src/ksp/pc/impls/ml/ml.c
PCCreate_MPI in src/ksp/pc/impls/mpi/pcmpi.c
PCCreate_None in src/ksp/pc/impls/none/none.c
PCCreate_PARMS in src/ksp/pc/impls/parms/parms.c
PCCreate_Patch in src/ksp/pc/impls/patch/pcpatch.c
PCCreate_PBJacobi in src/ksp/pc/impls/pbjacobi/pbjacobi.c
PCCreate_Redistribute in src/ksp/pc/impls/redistribute/redistribute.c
PCCreate_Redundant in src/ksp/pc/impls/redundant/redundant.c
PCCreate_ROWSCALINGVIENNACL in src/ksp/pc/impls/rowscalingviennacl/rowscalingviennacl.cxx
PCCreate_SAVIENNACL in src/ksp/pc/impls/saviennacl/saviennacl.cxx
PCCreate_Shell in src/ksp/pc/impls/shell/shellpc.c
PCCreate_SOR in src/ksp/pc/impls/sor/sor.c
PCCreate_SPAI in src/ksp/pc/impls/spai/ispai.c
PCCreate_SVD in src/ksp/pc/impls/svd/svd.c
PCCreate_Telescope in src/ksp/pc/impls/telescope/telescope.c
PCCreate_TFS in src/ksp/pc/impls/tfs/tfs.c
PCCreate_VPBJacobi in src/ksp/pc/impls/vpbjacobi/vpbjacobi.c
PCCreate_Exotic in src/ksp/pc/impls/wb/wb.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/pc/interface/precon.c)
[Index of all PC routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)