petscmaster 20201130
PCGAMGSetThreshold
Relative threshold to use for dropping edges in aggregation graph
Synopsis
#include "petscpc.h"
#include "petscksp.h"
PetscErrorCode PCGAMGSetThreshold(PC pc, PetscReal v[], PetscInt n)
Not collective on PC
Input Parameters
 pc   the preconditioner context

 v   array of threshold values for finest n levels; 0.0 means keep all nonzero entries in the graph; negative means keep even zero entries in the graph

 n   number of threshold values provided in array

Options Database Key
 pc_gamg_threshold <threshold> 
Notes
Increasing the threshold decreases the rate of coarsening. Conversely reducing the threshold increases the rate of coarsening (aggressive coarsening) and thereby reduces the complexity of the coarse grids, and generally results in slower solver converge rates. Reducing coarse grid complexity reduced the complexity of Galerkin coarse grid construction considerably.
Before coarsening or aggregating the graph, GAMG removes small values from the graph with this threshold, and thus reducing the coupling in the graph and a different (perhaps better) coarser set of points.
If n is less than the total number of coarsenings (see PCGAMGSetNlevels()), then threshold scaling (see PCGAMGSetThresholdScale()) is used for each successive coarsening.
In this case, PCGAMGSetThresholdScale() must be called before PCGAMGSetThreshold().
If n is greater than the total number of levels, the excess entries in threshold will not be used.
See Also
PCGAMGFilterGraph(), PCGAMGSetSquareGraph()
Level
intermediate
Location
src/ksp/pc/impls/gamg/gamg.c
Implementations
PCGAMGSetThreshold_GAMG in src/ksp/pc/impls/gamg/gamg.c
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages