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

Table of Contents