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.

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 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, Richard C Martineau, A highly parallel multilevel Newton-Krylov-Schwarz method with subspace-based coarsening and partition-based balancing for the multigroup neutron transport equations on 3D unstructured meshes, arXiv preprint arXiv:1903.03659, 2019

See Also#

PCCreate(), PCSetType(), PCType, PC, PCMG, PCHYPRE, PCHMG, PCGetCoarseOperators(), PCGetInterpolations(), PCHMGSetReuseInterpolation(), PCHMGSetUseSubspaceCoarsening(), PCHMGSetInnerPCType()

Level#

intermediate

Location#

src/ksp/pc/impls/hmg/hmg.c

Examples#

src/ksp/ksp/tutorials/ex4.c


Edit on GitLab

Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages