## 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 | PC | PCICC | PCPrometheus
PCASM | PCILU | PCSOR
PCASMType | PCJacobi | PCSPAI
PCBJACOBI | PCLU | PCSide
PCCholesky | PCMGType | PCType
PCCompositeType | PCNONE |
PCEISENSTAT | PCPBJACOBI |
Intermediate - Setting options for algorithms and data structures | PCASMSetOverlap | PCGetOperators | PCLUSetReuseFill
PCASMSetType | PCGetType | PCLUSetReuseOrdering
PCASMSetUseInPlace | PCHYPRE | PCLUSetUseInPlace
PCBJacobiGetLocalBlocks | PCHYPRESetType | PCMAT
PCBJacobiGetTotalBlocks | PCICCSetFill | PCMG
PCBJacobiSetLocalBlocks | PCICCSetLevels | PCMGSetGalerkin
PCBJacobiSetTotalBlocks | PCICCSetMatOrdering | PCMGSetLevels
PCBJacobiSetUseTrueLocal | PCILUDTSetReuseFill | PCML
PCCOMPOSITE | PCILUReorderForNonzeroDiagonal | PCNN
PCCholeskySetFill | PCILUSetAllowDiagonalFill | PCPrometheusSetCoordinates
PCCholeskySetMatOrdering | PCILUSetFill | PCREDUNDANT
PCCholeskySetReuseFill | PCILUSetLevels | PCSORSetIterations
PCCholeskySetReuseOrdering | PCILUSetMatOrdering | PCSORSetOmega
PCCholeskySetUseInPlace | PCILUSetPivotInBlocks | PCSORSetSymmetric
PCDiagonalScaleLeft | PCILUSetReuseOrdering | PCSPAISetBlockSize
PCDiagonalScaleRight | PCILUSetUseDropTolerance | PCSPAISetCacheSize
PCDiagonalScaleSet | PCILUSetUseInPlace | PCSPAISetEpsilon
PCEisenstatNoDiagonalScaling | PCJacobiSetUseRowMax | PCSPAISetMax
PCEisenstatSetOmega | PCKSP | PCSPAISetMaxNew
PCFIELDSPLIT | PCLUReorderForNonzeroDiagonal | PCSPAISetNBSteps
PCFactorSetShiftNonzero | PCLUSetFill | PCSPAISetSp
PCFactorSetShiftPd | PCLUSetMatOrdering | PCSPAISetVerbose
PCFactorSetZeroPivot | PCLUSetPivotInBlocks | PCSetOperators
PCFieldSplitSetFields | PCLUSetPivoting | PCSetType
Advanced - Setting more advanced options and customization | PCASMCreateSubdomains2D | PCMGGetCoarseSolve | PCMGSetX
PCASMGetLocalSubdomains | PCMGGetLevels | PCRedundantGetOperators
PCASMGetLocalSubmatrices | PCMGGetSmoother | PCRedundantGetPC
PCASMGetSubKSP | PCMGGetSmootherDown | PCRedundantSetScatter
PCASMSetLocalSubdomains | PCMGGetSmootherUp | PCRegister
PCASMSetTotalSubdomains | PCMGSetCycles | PCRegisterAll
PCAppendOptionsPrefix | PCMGSetCyclesOnLevel | PCRegisterDestroy
PCBJacobiGetSubKSP | PCMGSetInterpolate | PCRegisterDynamic
PCComputeExplicitOperator | PCMGSetNumberSmoothDown | PCSHELL
PCFieldSplitGetSubKSP | PCMGSetNumberSmoothUp | PCSetModifySubMatrices
PCGetFactoredMatrix | PCMGSetR | PCSetOptionsPrefix
PCGetOptionsPrefix | PCMGSetResidual | PCShellGetContext
PCKSPGetKSP | PCMGSetRestriction | PCShellSetContext
PCKSPSetUseTrue | PCMGSetRhs |
PCMGDefaultResidual | PCMGSetType |
Developer - Interfaces intended primarily for library developers, not for typical applications programmers | PCApply | PCCompositeSpecialSetAlpha | PCSetUpOnBlocks
PCApplyBAorAB | PCCreate | PCShellGetName
PCApplyBAorABTranspose | PCDestroy | PCShellSetApply
PCApplyRichardson | PCDiagonalScale | PCShellSetApplyRichardson
PCApplyRichardsonExists | PCFieldSplitSetType | PCShellSetApplyTranspose
PCApplySymmetricLeft | PCHasApplyTranspose | PCShellSetDestroy
PCApplySymmetricRight | PCModifySubMatrices | PCShellSetName
PCApplyTranspose | PCPostSolve | PCShellSetPostSolve
PCCompositeAddPC | PCPreSolve | PCShellSetPreSolve
PCCompositeGetPC | PCSAMG | PCShellSetSetUp
PCCompositeSetType | PCSetFromOptions | PCShellSetView
PCCompositeSetUseTrue | PCSetUp | PCView

Table of Contents