# Which libraries have good high-level support for multigrid?

I'm planning to use multigrid to calulate some eigenvalues and vectors, and I noticed PETSc has high-level support for multigrid. The PETSc documentation says that this part of PETSc should not be used, as it is being replaced soon.

Which other libraries have high-level support for multigrid, and roughly how soon will PETSc release the new multigrid support?

• The new MG is there in petsc-dev and works, as does the new GAMG solver. We are waiting to release until we can change every example (and there are hundreds). I would just start to use petsc-dev now. Dec 15 '11 at 23:31

Both PETSc and Trilinos have good algebraic multigrid methods.

deal.II implements geometric multigrid methods for finite element discretizations, see for example the step-16 tutorial program.

• PETSc does geometric MG if you use a DMDA (Cartesian) grid since then we know how to construct interpolators and coarse problems. Dec 16 '11 at 19:48
• Update: PETSc does GMG for nested unstructured meshes. Non-nested is available, but the point location could be improved. Apr 17 '20 at 13:38

PETSc multigrid (as a preconditioner) is quite mature and may be used with any of the KSP (iterative Krylov method) solvers in PETSc by typing:

 -pc_type mg 

However, this requires that you have some way of generating your coarse levels, such as having structured grids defined by PETSc DA objects, which will be coarsened automatically.

Or, if you want to use algebraic multigrid from the HYPRE package, you can use

 -pc_type hypre 

Or from the ML package with

 -pc_type ml 

 --download-hypre=1 --download-ml=1 
 -pc_type gamg -pc_gamg_type sa