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 PCCompositeType PCSide
PC PCMultiLevelBuildSolution PCType
PCASMType PCMultiLevelBukldSolution
Intermediate - Setting options for algorithms and data structures
MGSetLevels PCILUDTSetReuseFill PCMultiLevelApplyGradientTrans
PCASMSetOverlap PCILUSetAllowDiagonalFill PCMultiLevelApplyP
PCASMSetType PCILUSetDamping PCMultiLevelApplyP1
PCASMSetUseInPlace PCILUSetFill PCMultiLevelApplyP1Trans
PCBJacobiSetLocalBlocks PCILUSetLevels PCMultiLevelApplyP2
PCBJacobiSetTotalBlocks PCILUSetMatOrdering PCMultiLevelApplyP2Trans
PCBJacobiSetUseTrueLocal PCILUSetPivotInBlocks PCMultiLevelApplyPTrans
PCCholeskySetDamping PCILUSetReuseOrdering PCMultiLevelApplyV
PCCholeskySetFill PCILUSetSinglePrecisionSolves PCMultiLevelApplyVTrans
PCCholeskySetMatOrdering PCILUSetUseDropTolerance PCMultiLevelReduce
PCCholeskySetReuseFill PCILUSetUseInPlace PCMultiLevelSetFields
PCCholeskySetReuseOrdering PCJacobiSetUseRowMax PCMultiLevelSetGradientOperator
PCCholeskySetUseInPlace PCLUSetDamping PCMultiLevelSetNonlinearIterate
PCDiagonalScaleLeft PCLUSetFill PCSORSetIterations
PCDiagonalScaleRight PCLUSetMatOrdering PCSORSetOmega
PCDiagonalScaleSet PCLUSetPivotInBlocks PCSORSetSymmetric
PCESISetType PCLUSetPivoting PCSchurGetIterationNumber
PCEisenstatNoDiagonalScaling PCLUSetReuseFill PCSchurInnerMonitor
PCEisenstatSetOmega PCLUSetReuseOrdering PCSchurMonitor
PCGetType PCLUSetUseInPlace PCSchurSetGradientOperator
PCICCSetFill PCMultiLevelApplyDInv PCSchurSolveMonitor
PCICCSetLevels PCMultiLevelApplyDInvTrans PCSetType
PCICCSetMatOrdering PCMultiLevelApplyGradient
Advanced - Setting more advanced options and customization
MGCheck MGSetRestriction PCGetFactoredMatrix
MGDefaultResidual MGSetRhs PCGetOptionsPrefix
MGGetCoarseSolve MGSetType PCRedundantGetOperators
MGGetLevels MGSetX PCRedundantGetPC
MGGetSmoother PCASMCreateSubdomains2D PCRedundantSetScatter
MGGetSmootherDown PCASMGetLocalSubdomains PCRegisterAll
MGGetSmootherUp PCASMGetLocalSubmatrices PCRegisterDestroy
MGSetCycles PCASMGetSubSLES PCRegisterDynamic
MGSetCyclesOnLevel PCASMSetLocalSubdomains PCSLESGetSLES
MGSetInterpolate PCASMSetTotalSubdomains PCSLESSetUseTrue
MGSetNumberSmoothDown PCAppendOptionsPrefix PCSetModifySubMatrices
MGSetNumberSmoothUp PCBJacobiGetSubSLES PCSetOptionsPrefix
MGSetR PCComputeExplicitOperator
MGSetResidual PCESISetPreconditioner
Developer - Interfaces intended primarily for library developers, not for typical applications programmers
PCApply PCCompositeSpecialSetAlpha PCSetOperators
PCApplyBAorAB PCCreate PCSetUp
PCApplyBAorABTranspose PCDestroy PCSetUpOnBlocks
PCApplyRichardson PCDiagonalScale PCSetVector
PCApplyRichardsonExists PCGetOperators PCShellGetName
PCApplySymmetricLeft PCGetVector PCShellSetApply
PCApplySymmetricRight PCModifySubMatrices PCShellSetApplyRichardson
PCApplyTranspose PCMultiLevelInitializePackage PCShellSetApplyTranspose
PCCompositeAddPC PCNullSpaceAttach PCShellSetName
PCCompositeGetPC PCPostSolve PCShellSetSetUp
PCCompositeSetType PCPreSolve PCShellSetView
PCCompositeSetUseTrue PCSetFromOptions PCView

Table of Contents