:orphan: # PCType String with the name of a PETSc preconditioner ## Synopsis ``` typedef const char *PCType; #define PCNONE "none" #define PCJACOBI "jacobi" #define PCSOR "sor" #define PCLU "lu" #define PCQR "qr" #define PCSHELL "shell" #define PCAMGX "amgx" #define PCBJACOBI "bjacobi" #define PCMG "mg" #define PCEISENSTAT "eisenstat" #define PCILU "ilu" #define PCICC "icc" #define PCASM "asm" #define PCGASM "gasm" #define PCKSP "ksp" #define PCBJKOKKOS "bjkokkos" #define PCCOMPOSITE "composite" #define PCREDUNDANT "redundant" #define PCSPAI "spai" #define PCNN "nn" #define PCCHOLESKY "cholesky" #define PCPBJACOBI "pbjacobi" #define PCVPBJACOBI "vpbjacobi" #define PCMAT "mat" #define PCHYPRE "hypre" #define PCPARMS "parms" #define PCFIELDSPLIT "fieldsplit" #define PCTFS "tfs" #define PCML "ml" #define PCGALERKIN "galerkin" #define PCEXOTIC "exotic" #define PCCP "cp" #define PCBFBT "bfbt" #define PCLSC "lsc" #define PCPYTHON "python" #define PCPFMG "pfmg" #define PCSMG "smg" #define PCSYSPFMG "syspfmg" #define PCREDISTRIBUTE "redistribute" #define PCSVD "svd" #define PCGAMG "gamg" #define PCCHOWILUVIENNACL "chowiluviennacl" #define PCROWSCALINGVIENNACL "rowscalingviennacl" #define PCSAVIENNACL "saviennacl" #define PCBDDC "bddc" #define PCKACZMARZ "kaczmarz" #define PCTELESCOPE "telescope" #define PCPATCH "patch" #define PCLMVM "lmvm" #define PCHMG "hmg" #define PCDEFLATION "deflation" #define PCHPDDM "hpddm" #define PCH2OPUS "h2opus" #define PCMPI "mpi" ``` ## Note `PCRegister()` is used to register preconditioners that are then accessible via `PCSetType()` ## See Also [](doc_linsolve), [](sec_pc), `PCSetType()`, `PC`, `PCCreate()`, `PCRegister()`, `PCSetFromOptions()`, `PCLU`, `PCJACOBI`, `PCBJACOBI` ## Level beginner ## Location include/petscpctypes.h --- [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](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)