PCASM#
Use the (restricted) additive Schwarz method, each block is (approximately) solved with its own KSP
object, [DW87] and [SBjorstadG96]
Options Database Keys#
-pc_asm_blocks
- Sets total blocks. Defaults to one block per MPI process.-pc_asm_overlap
- Sets overlap-pc_asm_type [basic,restrict,interpolate,none] - Sets
PCASMType
, default is restrict. SeePCASMSetType()
-pc_asm_dm_subdomains
- use subdomains defined by theDM
withDMCreateDomainDecomposition()
-pc_asm_local_type [additive, multiplicative] - Sets
PCCompositeType
, default is additive. SeePCASMSetLocalType()
Notes#
If you run with, for example, 3 blocks on 1 processor or 3 blocks on 3 processors you
will get a different convergence rate due to the default option of -pc_asm_type restrict
. Use
-pc_asm_type basic
to get the same convergence behavior
Each processor can have one or more blocks, but a block cannot be shared by more
than one processor. Use PCGASM
for subdomains shared by multiple processes.
To set options on the solvers for each block append -sub_
to all the KSP
, and PC
options database keys. For example, -sub_pc_type ilu -sub_pc_factor_levels 1 -sub_ksp_type preonly
To set the options on the solvers separate for each block call PCASMGetSubKSP()
and set the options directly on the resulting KSP
object (you can access its PC
with KSPGetPC()
)
If the PC
has an associated DM
, then, by default, DMCreateDomainDecomposition()
is used to create the subdomains
References#
Maksymilian Dryja and Olof Widlund. An additive variant of the Schwarz alternating method for the case of many subregions. Ultracomputer Research Laboratory, Univ., Courant Inst. of Mathematical …, 1987.
Barry F. Smith, Petter Bjørstad, and William D. Gropp. Domain Decomposition: Parallel Multilevel Methods for Elliptic Partial Differential Equations. Cambridge University Press, 1996. URL: http://www.mcs.anl.gov/~bsmith/ddbook.html.
See Also#
KSP: Linear System Solvers, PCCreate()
, PCSetType()
, PCType
, PC
, PCASMType
, PCCompositeType
,
PCBJACOBI
, PCASMGetSubKSP()
, PCASMSetLocalSubdomains()
, PCASMType
, PCASMGetType()
, PCASMSetLocalType()
, PCASMGetLocalType()
PCASMSetTotalSubdomains()
, PCSetModifySubMatrices()
, PCASMSetOverlap()
, PCASMSetType()
, PCCompositeType
Level#
beginner
Location#
Examples#
src/ksp/ksp/tutorials/ex19.c
src/ksp/ksp/tutorials/ex76.c
src/ksp/ksp/tutorials/ex8.c
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages