PCHPDDMCoarseCorrectionType#
Type of coarse correction used by PCType PCHPDDM
Synopsis#
Values#
PC_HPDDM_COARSE_CORRECTION_DEFLATED(default) - eq. (2) belowPC_HPDDM_COARSE_CORRECTION_ADDITIVE- eq. (1)PC_HPDDM_COARSE_CORRECTION_BALANCED- eq. (3)PC_HPDDM_COARSE_CORRECTION_NONE- eq. (4), no coarse correction (mostly useful for debugging)
Notes#
At each level other than the coarsest, let \(Z\) denote the deflation matrix, \(E = Z^T Pmat Z\), and \(Q = Z E^{-1} Z^T\). The coarse corrections applied by PCApply() are
(1) y = Pmat^-1 x + Q x,
(2) y = Pmat^-1 (I - Amat Q) x + Q x (default),
(3) y = (I - Q^T Amat^T) Pmat^-1 (I - Amat Q) x + Q x,
(4) y = Pmat^-1 x,
(5) y = (I - Q Amat) Pmat^-1 x + Q x.
The corresponding operations applied by PCApplyTranspose() are
(1) y = Pmat^-T x + Q^T x,
(2) y = (I - Q^T Amat^T) Pmat^-T x + Q^T x (default),
(3) y = (I - Q^T Amat^T) Pmat^-T (I - Amat Q) x + Q^T x,
(4) y = Pmat^-T x,
(5) y = Pmat^-T (I - Amat^T Q^T) x + Q^T x.
The options of Pmat^-1 = pc(Pmat) are prefixed by -pc_hpddm_levels_1_pc_. \(Z\) is a tall-and-skinny matrix assembled by HPDDM. The number of processes on which \(E\) is aggregated is set via -pc_hpddm_coarse_p.
The options of (Z^T Pmat Z)^-1 = ksp(Z^T Pmat Z) are prefixed by -pc_hpddm_coarse_ (KSPPREONLY and PCCHOLESKY by default), unless a multilevel correction is turned on, in which case, the correction above is applied recursively at each level except the coarsest one.
For PCApply(), corrections (1), (2), and (5) visit the next coarser level once per application, while (3) visits it twice. For PCApplyTranspose(), (1) and (5) visit it once, (2) twice, and (3) three times.
Corrections (2) and (5) are not symmetric even when both Amat and Pmat are symmetric.
See Also#
Preconditioners, PCHPDDM, PC, PCSetType(), PCApply(), PCApplyTranspose(), PCHPDDMSetCoarseCorrectionType(), PCHPDDMGetCoarseCorrectionType()
Level#
intermediate
Location#
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages