# 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 - the threshold to drop edges

## 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, PCGAMG 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.

PCGAMG, PCGAMGFilterGraph(), PCGAMGSetAggressiveLevels(), PCGAMGSetThresholdScale()

intermediate

## Location#

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

Edit on GitLab