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

Table of Contents