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 PCPBJACOBI
PC PCEISENSTAT PCSOR
PCASM PCICC PCSPAI
PCASMType PCILU PCSide
PCBJACOBI PCJacobi PCType
PCCholesky PCLU
Intermediate - Setting options for algorithms and data structures
MGSetLevels PCGetVector PCLUSetPivotInBlocks
PCASMSetOverlap PCHYPRE PCLUSetPivoting
PCASMSetType PCHYPRESetType PCLUSetReuseFill
PCASMSetUseInPlace PCICCSetDamping PCLUSetReuseOrdering
PCBJacobiGetLocalBlocks PCICCSetFill PCLUSetShift
PCBJacobiGetTotalBlocks PCICCSetLevels PCLUSetUseInPlace
PCBJacobiSetLocalBlocks PCICCSetMatOrdering PCLUSetZeroPivot
PCBJacobiSetTotalBlocks PCICCSetShift PCMAT
PCBJacobiSetUseTrueLocal PCICCSetZeroPivot PCMG
PCCOMPOSITE PCILUDTSetReuseFill PCNN
PCCholeskySetDamping PCILUSetAllowDiagonalFill PCRAMG
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
PCESI PCILUSetZeroPivot PCSPAISetNBSteps
PCESISetType PCJacobiSetUseRowMax PCSPAISetSp
PCEisenstatNoDiagonalScaling PCKSP PCSPAISetVerbose
PCEisenstatSetOmega PCLUSetDamping PCSetOperators
PCGetOperators PCLUSetFill PCSetType
PCGetType PCLUSetMatOrdering PCSetVector
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 PCESISetPreconditioner PCSetOptionsPrefix
Developer - Interfaces intended primarily for library developers, not for typical applications programmers
PCApply PCCompositeSetUseTrue PCSetUp
PCApplyBAorAB PCCompositeSpecialSetAlpha PCSetUpOnBlocks
PCApplyBAorABTranspose PCCreate PCShellGetName
PCApplyRichardson PCDestroy PCShellSetApply
PCApplyRichardsonExists PCDiagonalScale PCShellSetApplyRichardson
PCApplySymmetricLeft PCHasApplyTranspose PCShellSetApplyTranspose
PCApplySymmetricRight PCModifySubMatrices PCShellSetName
PCApplyTranspose PCNullSpaceAttach PCShellSetSetUp
PCCompositeAddPC PCPostSolve PCShellSetView
PCCompositeGetPC PCPreSolve PCView
PCCompositeSetType PCSetFromOptions
None: Not yet cataloged
PCSAMG

Table of Contents