HMG
Overview
HMG stands for High-performance (Hybrid) MultiGrid method. HMG's essential idea is to separate a multigrid method into two steps; matrix coarsening and level solvers. The main motivation of HMG in the first place is to use HYPRE to do matrix coarsening and generate interpolations and use PETSc preconditioners/solvers as level solvers. However, the code is more general, and it can use other codes such as GAMG or a user code to generate interpolations.
Example 1
This configuration uses HYPRE to generate interpolations and uses SOR preconditioners from PETSc as level solvers.
Example 2
If there are multiple nonlinear variables, this configuration will reuse interpolations generated for the first nonlinear variable for all other variables. This will significantly speedup preconditioner setup. A complete toy example is (contrib/moose/test/tests/preconditioners/hmg/diffusion_hmg.i). We also demonstrate this capability for realistic neutron transport calculations in the following paper: