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
PCASM PCGASMType PCNONE
PCASMType PC PCPBJACOBI
PCBJACOBI PCICC PCSide
PCCHOLESKY PCILU PCSOR
PCCompositeType PCJACOBI PCSPAI
PCEISENSTAT PCLU PCSUPPORTGRAPH
PCExoticType PCMGCycleType PCTFS
PCGASM PCMGType PCType
Intermediate - Setting options for algorithms and data structures
PCASMSetOverlap PCFieldSplitSchurPrecondition PCPARMSGlobalType
PCASMSetSortIndices PCFieldSplitSchurPreType PCPARMS
PCASMSetType PCFieldSplitSetBlockSize PCPARMSLocalType
PCBJacobiGetLocalBlocks PCFieldSplitSetFields PCPARMSSetFill
PCBJacobiGetTotalBlocks PCFieldSplitSetIS PCPARMSSetGlobal
PCBJacobiSetLocalBlocks PCGalerkinGetKSP PCPARMSSetLocal
PCBJacobiSetTotalBlocks PCGALERKIN PCPARMSSetNonsymPerm
PCBJacobiSetUseTrueLocal PCGalerkinSetInterpolation PCPARMSSetSolveRestart
PCCOMPOSITE PCGalerkinSetRestriction PCPARMSSetSolveTolerances
PCCP PCGASMSetOverlap PCPROMETHEUS
PCDiagonalScaleLeft PCGASMSetSortIndices PCPythonSetType
PCDiagonalScaleRight PCGASMSetType PCREDISTRIBUTE
PCEisenstatNoDiagonalScaling PCGetApplicationContext PCREDUNDANT
PCEisenstatSetOmega PCGetDM PCSASetVectors
PCExoticSetType PCGetOperators PCSetApplicationContext
PCFactorGetMatSolverPackage PCGetOperatorsSet PCSetCoordinates
PCFactorReorderForNonzeroDiagonal PCGetType PCSetDiagonalScale
PCFactorSetAllowDiagonalFill PCHMPI PCSetDM
PCFactorSetColumnPivot PCHYPREGetType PCSetOperators
PCFactorSetFill PCHYPRE PCSetType
PCFactorSetLevels PCHYPRESetType PCSORSetIterations
PCFactorSetMatOrderingType PCJacobiSetUseAbs PCSORSetOmega
PCFactorSetMatSolverPackage PCJacobiSetUseRowMax PCSORSetSymmetric
PCFactorSetPivotInBlocks PCJacobiSetUseRowSum PCSPAISetBlockSize
PCFactorSetReuseFill PCKSP PCSPAISetCacheSize
PCFactorSetReuseOrdering PCLSC PCSPAISetEpsilon
PCFactorSetShiftAmount PCMAT PCSPAISetMax
PCFactorSetShiftType PCMGGetGalerkin PCSPAISetMaxNew
PCFactorSetUpMatSolverPackage PCMG PCSPAISetNBSteps
PCFactorSetUseInPlace PCMGSetGalerkin PCSPAISetSp
PCFactorSetZeroPivot PCMGSetLevels PCSPAISetVerbose
PCFieldSplitGetIS PCML
PCFIELDSPLIT PCNN
Advanced - Setting more advanced options and customization
PCAppendOptionsPrefix PCGASMGetSubKSP PCMGSetRScale
PCASASetDM PCGASMSetLocalSubdomains PCMGSetType
PCASASetTolerances PCGASMSetTotalSubdomains PCMGSetX
PCASMCreateSubdomains2D PCGetOptionsPrefix PCPFMG
PCASMCreateSubdomains PCKSPGetKSP PCRedistributeGetKSP
PCASMDestroySubdomains PCKSPSetUseTrue PCRedundantGetKSP
PCASMGetLocalSubdomains PCMGDefaultResidual PCRedundantGetOperators
PCASMGetLocalSubmatrices PCMGGetCoarseSolve PCRedundantSetNumber
PCASMGetSubKSP PCMGGetLevels PCRedundantSetScatter
PCASMSetLocalSubdomains PCMGGetSmootherDown PCRegisterAll
PCASMSetTotalSubdomains PCMGGetSmoother PCRegisterDestroy
PCBJacobiGetSubKSP PCMGGetSmootherUp PCRegisterDynamic
PCComputeExplicitOperator PCMGMultiplicativeSetCycles PCRegister
PCEXOTIC PCMGSetCyclesOnLevel PCRichardsonConvergedReason
PCFactorGetMatrix PCMGSetCycleType PCSetModifySubMatrices
PCFieldSplitGetSchurBlocks PCMGSetInterpolation PCSetOptionsPrefix
PCFieldSplitGetSubKSP PCMGSetNumberSmoothDown PCShellGetContext
PCGASMCreateSubdomains2D PCMGSetNumberSmoothUp PCSHELL
PCGASMCreateSubdomains PCMGSetResidual PCShellSetContext
PCGASMDestroySubdomains PCMGSetRestriction PCSVD
PCGASMGetLocalSubdomains PCMGSetRhs PCSysPFMG
PCGASMGetLocalSubmatrices PCMGSetR
Developer - Interfaces intended primarily for library developers, not for typical applications programmers
PCApplyBAorAB PCCompositeSpecialSetAlpha PCShellGetName
PCApplyBAorABTranspose PCCreate PCShellSetApplyBA
PCApply PCDestroy PCShellSetApply
PCApplyRichardsonExists PCFieldSplitSetType PCShellSetApplyRichardson
PCApplyRichardson PCGetDiagonalScale PCShellSetApplyTranspose
PCApplySymmetricLeft PCModifySubMatrices PCShellSetDestroy
PCApplySymmetricRight PCPostSolve PCShellSetName
PCApplyTransposeExists PCPreSolve PCShellSetPostSolve
PCApplyTranspose PCReset PCShellSetPreSolve
PCCompositeAddPC PCSetFromOptions PCShellSetSetUp
PCCompositeGetPC PCSetInitialGuessNonzero PCShellSetView
PCCompositeSetType PCSetUp PCView
PCCompositeSetUseTrue PCSetUpOnBlocks
No deprecated routines

Table of Contents