Preconditioners - PC: Examples

The Scalable Linear Equations Solvers (SLES) 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. SLES users can set various preconditioning options at runtime via the options database (e.g., -pc_type jacobi ). SLES users can also set PC options directly in application codes by first extracting the PC context from the SLES context via SLESGetPC() 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 PCCholesky PCMultiLevelBuildSolution
PC PCCompositeType PCMultiLevelGetMultiplier
PCASM PCEISENSTAT PCSOR
PCASMType PCJacobi PCSide
PCBJACOBI PCLU PCType
Intermediate - Setting options for algorithms and data structures
MGSetLevels PCICCSetFill PCMultiLevelApplyGradient
PCASMSetOverlap PCICCSetLevels PCMultiLevelApplyGradientTrans
PCASMSetType PCICCSetMatOrdering PCMultiLevelApplyP
PCASMSetUseInPlace PCILUDTSetReuseFill PCMultiLevelApplyP1
PCBJacobiGetLocalBlocks PCILUSetAllowDiagonalFill PCMultiLevelApplyP1Trans
PCBJacobiGetTotalBlocks PCILUSetDamping PCMultiLevelApplyP2
PCBJacobiSetLocalBlocks PCILUSetFill PCMultiLevelApplyP2Trans
PCBJacobiSetTotalBlocks PCILUSetLevels PCMultiLevelApplyPTrans
PCBJacobiSetUseTrueLocal PCILUSetMatOrdering PCMultiLevelApplyV
PCCOMPOSITE PCILUSetPivotInBlocks PCMultiLevelApplyVTrans
PCCholeskySetDamping PCILUSetReuseOrdering PCMultiLevelReduce
PCCholeskySetFill PCILUSetUseDropTolerance PCMultiLevelSetFields
PCCholeskySetMatOrdering PCILUSetUseInPlace PCMultiLevelSetGradientOperator
PCCholeskySetReuseFill PCILUSetZeroPivot PCMultiLevelSetNonlinearIterate
PCCholeskySetReuseOrdering PCJacobiSetUseRowMax PCSLES
PCCholeskySetUseInPlace PCLUSetDamping PCSORSetIterations
PCDiagonalScaleLeft PCLUSetFill PCSORSetOmega
PCDiagonalScaleRight PCLUSetMatOrdering PCSORSetSymmetric
PCDiagonalScaleSet PCLUSetPivotInBlocks PCSchurGetIterationNumber
PCESISetType PCLUSetPivoting PCSchurInnerMonitor
PCEisenstatNoDiagonalScaling PCLUSetReuseFill PCSchurMonitor
PCEisenstatSetOmega PCLUSetReuseOrdering PCSchurSetGradientOperator
PCGetOperators PCLUSetUseInPlace PCSchurSolveMonitor
PCGetType PCLUSetZeroPivot PCSetOperators
PCGetVector PCMAT PCSetType
PCHYPRE PCMultiLevelApplyDInv PCSetVector
PCHYPRESetType PCMultiLevelApplyDInvTrans
Advanced - Setting more advanced options and customization
MGCheck MGSetRestriction PCGetFactoredMatrix
MGDefaultResidual MGSetRhs PCGetOptionsPrefix
MGGetCoarseSolve MGSetType PCRedundantGetOperators
MGGetLevels MGSetX PCRedundantGetPC
MGGetSmoother PCASMCreateSubdomains2D PCRedundantSetScatter
MGGetSmootherDown PCASMGetLocalSubdomains PCRegister
MGGetSmootherUp PCASMGetLocalSubmatrices PCRegisterAll
MGSetCycles PCASMGetSubSLES PCRegisterDestroy
MGSetCyclesOnLevel PCASMSetLocalSubdomains PCRegisterDynamic
MGSetInterpolate PCASMSetTotalSubdomains PCSHELL
MGSetNumberSmoothDown PCAppendOptionsPrefix PCSLESGetSLES
MGSetNumberSmoothUp PCBJacobiGetSubSLES PCSLESSetUseTrue
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 PCModifySubMatrices PCShellSetApplyTranspose
PCApplySymmetricRight PCMultiLevelInitializePackage PCShellSetName
PCApplyTranspose PCNullSpaceAttach PCShellSetSetUp
PCCompositeAddPC PCPostSolve PCShellSetView
PCCompositeGetPC PCPreSolve PCView
PCCompositeSetType PCSetFromOptions

Table of Contents