petsc-3.12.4 2020-02-04
Report Typos and Errors

# PCHMG

Hybrid of PETSc preconditioners (such as ASM, BJacobi, SOR, etc.) and Hypre BoomerAMG, GAMG or other multilevel methods. BoomerAMG, GAMG or other multilevel methods is used to coarsen matrix and generate a sequence of coarse matrices and interpolations. The matrices and interpolations are employed to construct PCMG, and then any available PETSc preconditioners can be chosen as smoothers and the coarse solver.

### Options Database Keys

| -pc_hmg_reuse_interpolation <true | false> | - Whether or not to reuse the interpolations. If true, it potentially save the 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

### Notes

For multicomponent problems, we can just coarsen one submatrix associated with one particular component. In this way, the preconditioner setup time is significantly reduced. One typical use case is neutron transport equations. There are many variables on each mesh vertex due to the of angle and energy. Each variable, in fact, corresponds to the same PDEs but with different material properties.

Concepts: Hybrid of ASM and MG, Subspace Coarsening

### References

1. -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

beginner

### Location

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

### Examples

src/ksp/ksp/examples/tutorials/ex4.c.html
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages