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 PCREDUNDANT
PCCholeskySetMatOrdering PCILUSetFill PCSORSetIterations
PCCholeskySetReuseFill PCILUSetLevels PCSORSetOmega
PCCholeskySetReuseOrdering PCILUSetMatOrdering PCSORSetSymmetric
PCCholeskySetUseInPlace PCILUSetPivotInBlocks PCSPAISetBlockSize
PCDiagonalScaleLeft PCILUSetReuseOrdering PCSPAISetCacheSize
PCDiagonalScaleRight PCILUSetUseDropTolerance PCSPAISetEpsilon
PCDiagonalScaleSet PCILUSetUseInPlace PCSPAISetMax
PCEisenstatNoDiagonalScaling PCJacobiSetUseRowMax PCSPAISetMaxNew
PCEisenstatSetOmega PCKSP PCSPAISetNBSteps
PCFIELDSPLIT PCLUReorderForNonzeroDiagonal PCSPAISetSp
PCFactorSetShiftNonzero PCLUSetFill PCSPAISetVerbose
PCFactorSetShiftPd PCLUSetMatOrdering PCSetOperators
PCFactorSetZeroPivot PCLUSetPivotInBlocks PCSetType
PCFieldSplitSetFields PCLUSetPivoting
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 PCShellSetName
PCApplySymmetricRight PCModifySubMatrices PCShellSetPostSolve
PCApplyTranspose PCPostSolve PCShellSetPreSolve
PCCompositeAddPC PCPreSolve PCShellSetSetUp
PCCompositeGetPC PCSAMG PCShellSetView
PCCompositeSetType PCSetFromOptions PCView
PCCompositeSetUseTrue PCSetUp

Table of Contents