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