PCHMG#
For multiple component PDE problems constructs a hierarchy of restriction operators to coarse grid problems using the submatrix of a single component with either PCHYPRE
or PCGAMG
. The same restriction operators are used for each of the components of the PDE with PCMG
resulting in a much more efficient to build and apply preconditioner than using PCGAMG
on the entire system [KWG+20].
Options Database Keys#
-pc_hmg_reuse_interpolation <true | false> - Whether or not to reuse the interpolations for new matrix values. It can potentially save compute time.
-pc_hmg_use_subspace_coarsening <true | false> - Whether or not to use subspace coarsening (that is, coarsen a submatrix).
-hmg_inner_pc_type <hypre, gamg, …> - What method is used to solve the coarsen matrix
-pc_hmg_use_matmaij <true | false> - Whether or not to use
MATMAIJ
for multicomponent problems for saving memory
Note#
MatSetBlockSize()
must be called on the linear system matrix to set the number of components of the PDE.
References#
Fande Kong, Yaqi Wang, Derek R Gaston, Cody J Permann, Andrew E Slaughter, Alexander D Lindsay, Mark D DeHart, and Richard C Martineau. A highly parallel multilevel Newton–Krylov–Schwarz method with subspace-based coarsening and partition-based balancing for the multigroup neutron transport equation on three-dimensional unstructured meshes. SIAM Journal on Scientific Computing, 42(5):C193–C220, 2020.
See Also#
KSP: Linear System Solvers, PCCreate()
, PCSetType()
, PCType
, PC
, PCMG
, PCHYPRE
, PCHMG
, PCGetCoarseOperators()
, PCGetInterpolations()
,
PCHMGSetReuseInterpolation()
, PCHMGSetUseSubspaceCoarsening()
, PCHMGSetInnerPCType()
Level#
intermediate
Location#
Examples#
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages