Skip to main content
`Ctrl`+`K`

# PCGAMGAGG

Smooth aggregation, [VanvekMB96], [VanveekBM01], variant of PETSc’s algebraic multigrid (`PCGAMG`) preconditioner

## Options Database Keys

- -pc_gamg_agg_nsmooths nsmooth - number of smoothing steps to use with smooth aggregation to construct prolongation

- -pc_gamg_aggressive_coarsening n - number of aggressive coarsening (MIS-2) levels from finest.

- -pc_gamg_aggressive_square_graph (true|false) - Use square graph (A’A), alternative is MIS-k (k=2), for aggressive coarsening

- -pc_gamg_mis_k_minimum_degree_ordering (true|false) - Use minimum degree ordering in greedy MIS algorithm

- -pc_gamg_pc_gamg_asm_hem_aggs n - Number of HEM aggregation steps for ASM smoother

- -pc_gamg_aggressive_mis_k n - Number (k) distance in MIS coarsening (>2 is ‘aggressive’)

## Notes

To obtain good performance for `PCGAMG` for vector valued problems you must call `MatSetBlockSize()` to indicate the number of degrees of freedom per grid point. Call `MatSetNearNullSpace()` (or `PCSetCoordinates()` if solving the equations of elasticity) to indicate the near null space of the operator

The many options for `PCMG` and `PCGAMG` such as controlling the smoothers on each level etc. also work for `PCGAMGAGG`

## References

[VanveekBM01]

P. Vaněek, M. Brezina, and J. Mandel. Convergence of algebraic multigrid based on smoothed aggregation. Numerische Mathematik, 88(3):559–579, 2001.

[VanvekMB96]

P. Vaněk, J. Mandel, and M. Brezina. Algebraic multigrid by smoothed aggregation for second and fourth order elliptic problems. Computing, 56(3):179–196, 1996.

## See Also

`PCGAMG`, the Users Manual section on PCGAMG, the Users Manual section on PCMG, KSP: Linear System Solvers, `PCCreate()`, `PCSetType()`, `MatSetBlockSize()`, `PCMGType`, `PCSetCoordinates()`, `MatSetNearNullSpace()`, `PCGAMGSetType()`, `PCGAMGAGG`, `PCGAMGGEO`, `PCGAMGCLASSICAL`, `PCGAMGSetProcEqLim()`, `PCGAMGSetCoarseEqLim()`, `PCGAMGSetRepartition()`, `PCGAMGRegister()`, `PCGAMGSetReuseInterpolation()`, `PCGAMGASMSetUseAggs()`, `PCGAMGSetParallelCoarseGridSolve()`, `PCGAMGSetNlevels()`, `PCGAMGSetThreshold()`, `PCGAMGGetType()`, `PCGAMGSetUseSAEstEig()`

## Level

intermediate

## Location

src/ksp/pc/impls/gamg/agg.c

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