petsc-3.8.4 2018-03-24
Report Typos and Errors

PCGAMG

Geometric algebraic multigrid (AMG) preconditioner

Options Database Keys

-pc_gamg_type <type> - one of agg, geo, or classical
-pc_gamg_repartition <true,default=false> - repartition the degrees of freedom accross the coarse grids as they are determined
-pc_gamg_reuse_interpolation <true,default=false> - when rebuilding the algebraic multigrid preconditioner reuse the previously computed interpolations
-pc_gamg_asm_use_agg <true,default=false> - use the aggregates from the coasening process to defined the subdomains on each level for the PCASM smoother
-pc_gamg_process_eq_limit <limit, default=50> - GAMG will reduce the number of MPI processes used directly on the coarse grids so that there are around <limit> equations on each process that has degrees of freedom
-pc_gamg_coarse_eq_limit <limit, default=50> - Set maximum number of equations on coarsest grid to aim for.
-pc_gamg_threshold[] <thresh,default=0> - Before aggregating the graph GAMG will remove small values from the graph on each level
-pc_gamg_threshold_scale <scale,default=1> - Scaling of threshold on each coarser grid if not specified

Options Database Keys for default Aggregation

-pc_gamg_agg_nsmooths <nsmooth, default=1> - number of smoothing steps to use with smooth aggregation
-pc_gamg_sym_graph <true,default=false> - symmetrize the graph before computing the aggregation
-pc_gamg_square_graph <n,default=1> - number of levels to square the graph before aggregating it

Multigrid options(inherited)

Notes: In order 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
      See the Users Manual Chapter 4 for more details

See Also

PCCreate(), PCSetType(), MatSetBlockSize(), PCMGType, PCSetCoordinates(), MatSetNearNullSpace(), PCGAMGSetType(), PCGAMGAGG, PCGAMGGEO, PCGAMGCLASSICAL, PCGAMGSetProcEqLim(),
PCGAMGSetCoarseEqLim(), PCGAMGSetRepartition(), PCGAMGRegister(), PCGAMGSetReuseInterpolation(), PCGAMGASMSetUseAggs(), PCGAMGSetUseParallelCoarseGridSolve(), PCGAMGSetNlevels(), PCGAMGSetThreshold(), PCGAMGGetType(), PCGAMGSetReuseInterpolation()

Level:intermediate
Location:
src/ksp/pc/impls/gamg/gamg.c
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages

-pc_mg_cycles <v>: v or w (PCMGSetCycleType())- . -pc_mg_smoothup <1>: Number of post-smoothing steps (PCMGSetNumberSmoothUp)
-pc_mg_smoothdown <1>: Number of pre- smoothing steps (PCMGSetNumberSmoothDown)
-pc_mg_type <multiplicative>: (one of) additive multiplicative full kascade- - -pc_mg_levels <levels> - Number of levels of multigrid to use.