PCGAMG#
Geometric algebraic multigrid (AMG) preconditioner
Options Database Keys#
-pc_gamg_type <type,default=agg> - one of agg, geo, or classical
-pc_gamg_repartition <bool,default=false> - repartition the degrees of freedom across the coarse grids as they are determined
-pc_gamg_asm_use_agg <bool,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> -
PCGAMG
will reduce the number of MPI ranks used directly on the coarse grids so that there are aroundequations 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_reuse_interpolation <bool,default=true> - when rebuilding the algebraic multigrid preconditioner reuse the previously computed interpolations (should always be true)
-pc_gamg_threshold[] <thresh,default=[- 1,…]> - Before aggregating the graph
PCGAMG
will remove small values from the graph on each level (< 0 does no filtering)-pc_gamg_threshold_scale <scale,default=1> - Scaling of threshold on each coarser grid if not specified
Options Database Keys for Aggregation#
-pc_gamg_agg_nsmooths <nsmooth, default=1> - number of smoothing steps to use with smooth aggregation
-pc_gamg_square_graph <n,default=1> - alias for pc_gamg_aggressive_coarsening (deprecated)
-pc_gamg_aggressive_coarsening <n,default=1> - number of aggressive coarsening (MIS-2) levels from finest.
Options Database Keys for Multigrid#
-pc_mg_cycle_type
- v or w, seePCMGSetCycleType()
-pc_mg_distinct_smoothup - configure the up and down (pre and post) smoothers separately, see PCMGSetDistinctSmoothUp()
-pc_mg_type
- (one of) additive multiplicative full kascade-pc_mg_levels
- Number of levels of multigrid to use. GAMG has a heuristic so pc_mg_levels is not usually used with GAMG
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
See the Users Manual section on PCGAMG 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()
, PCGAMGSetUseSAEstEig()
Level#
intermediate
Location#
Examples#
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages