## Preconditioners - PC: Examples

The Scalable Linear Equations Solvers (KSP) component provides an easy-to-use interface to the combination of a Krylov subspace iterative method and a preconditioner (in the KSP and PC components, respectively) or a sequential direct solver. KSP users can set various preconditioning options at runtime via the options database (e.g., -pc_type jacobi ). KSP users can also set PC options directly in application codes by first extracting the PC context from the KSP context via KSPGetPC() and then directly calling the PC routines listed below (e.g., PCSetType() ). PC components can be used directly to create and destroy solvers; this is not needed for users but is for library developers.

Beginner - Basic usage | MGType | PCCompositeType | PCNONE
PC | PCEISENSTAT | PCPBJACOBI
PCASM | PCICC | PCSOR
PCASMType | PCILU | PCSPAI
PCBJACOBI | PCJacobi | PCSide
PCCholesky | PCLU | PCType
Intermediate - Setting options for algorithms and data structures | MGSetLevels | PCGetType | PCLUSetMatOrdering
PCASMSetOverlap | PCHYPRE | PCLUSetPivotInBlocks
PCASMSetType | PCHYPRESetType | PCLUSetPivoting
PCASMSetUseInPlace | PCICCSetDamping | PCLUSetReuseFill
PCBJacobiGetLocalBlocks | PCICCSetFill | PCLUSetReuseOrdering
PCBJacobiGetTotalBlocks | PCICCSetLevels | PCLUSetShift
PCBJacobiSetLocalBlocks | PCICCSetMatOrdering | PCLUSetUseInPlace
PCBJacobiSetTotalBlocks | PCICCSetShift | PCLUSetZeroPivot
PCBJacobiSetUseTrueLocal | PCICCSetZeroPivot | PCMAT
PCCOMPOSITE | PCILUDTSetReuseFill | PCMG
PCCholeskySetDamping | PCILUSetAllowDiagonalFill | PCNN
PCCholeskySetFill | PCILUSetDamping | PCREDUNDANT
PCCholeskySetMatOrdering | PCILUSetFill | PCSORSetIterations
PCCholeskySetReuseFill | PCILUSetLevels | PCSORSetOmega
PCCholeskySetReuseOrdering | PCILUSetMatOrdering | PCSORSetSymmetric
PCCholeskySetShift | PCILUSetPivotInBlocks | PCSPAISetBlockSize
PCCholeskySetUseInPlace | PCILUSetReuseOrdering | PCSPAISetCacheSize
PCDiagonalScaleLeft | PCILUSetShift | PCSPAISetEpsilon
PCDiagonalScaleRight | PCILUSetUseDropTolerance | PCSPAISetMax
PCDiagonalScaleSet | PCILUSetUseInPlace | PCSPAISetMaxNew
PCEisenstatNoDiagonalScaling | PCILUSetZeroPivot | PCSPAISetNBSteps
PCEisenstatSetOmega | PCJacobiSetUseRowMax | PCSPAISetSp
PCFieldSplit | PCKSP | PCSPAISetVerbose
PCFieldSplitSetFields | PCLUSetDamping | PCSetOperators
PCGetOperators | PCLUSetFill | PCSetType
Advanced - Setting more advanced options and customization | MGCheck | MGSetRestriction | PCGetFactoredMatrix
MGDefaultResidual | MGSetRhs | PCGetOptionsPrefix
MGGetCoarseSolve | MGSetType | PCKSPGetKSP
MGGetLevels | MGSetX | PCKSPSetUseTrue
MGGetSmoother | PCASMCreateSubdomains2D | PCRedundantGetOperators
MGGetSmootherDown | PCASMGetLocalSubdomains | PCRedundantGetPC
MGGetSmootherUp | PCASMGetLocalSubmatrices | PCRedundantSetScatter
MGSetCycles | PCASMGetSubKSP | PCRegister
MGSetCyclesOnLevel | PCASMSetLocalSubdomains | PCRegisterAll
MGSetInterpolate | PCASMSetTotalSubdomains | PCRegisterDestroy
MGSetNumberSmoothDown | PCAppendOptionsPrefix | PCRegisterDynamic
MGSetNumberSmoothUp | PCBJacobiGetSubKSP | PCSHELL
MGSetR | PCComputeExplicitOperator | PCSetModifySubMatrices
MGSetResidual | PCFieldSplitGetSubKSP | PCSetOptionsPrefix
Developer - Interfaces intended primarily for library developers, not for typical applications programmers | PCApply | PCCompositeSetUseTrue | PCSetFromOptions
PCApplyBAorAB | PCCompositeSpecialSetAlpha | PCSetUp
PCApplyBAorABTranspose | PCCreate | PCSetUpOnBlocks
PCApplyRichardson | PCDestroy | PCShellGetName
PCApplyRichardsonExists | PCDiagonalScale | PCShellSetApply
PCApplySymmetricLeft | PCFieldSplitSetType | PCShellSetApplyRichardson
PCApplySymmetricRight | PCHasApplyTranspose | PCShellSetApplyTranspose
PCApplyTranspose | PCModifySubMatrices | PCShellSetName
PCCompositeAddPC | PCPostSolve | PCShellSetSetUp
PCCompositeGetPC | PCPreSolve | PCShellSetView
PCCompositeSetType | PCSAMG | PCView

Table of Contents