PCMGType#

Determines the type of multigrid method that is run.

Synopsis#

typedef enum {
PC_MG_MULTIPLICATIVE,
PC_MG_FULL,
} PCMGType;


Values#

• PC_MG_MULTIPLICATIVE (default) - traditional V or W cycle as determined by PCMGSetCycleType()

• PC_MG_ADDITIVE - the additive multigrid preconditioner where all levels are smoothed before updating the residual. This only uses the down smoother, in the preconditioner the upper smoother is ignored

• PC_MG_FULL - same as multiplicative except one also performs grid sequencing, that is starts on the coarsest grid, performs a cycle, interpolates to the next, performs a cycle etc. This is much like the F-cycle presented in “Multigrid” by Trottenberg, Oosterlee, Schuller page 49, but that algorithm supports smoothing on before the restriction on each level in the initial restriction to the coarsest stage. In addition that algorithm calls the V-cycle only on the coarser level and has a post-smoother instead.

• PC_MG_KASKADE - like full multigrid except one never goes back to a coarser level from a finer

PCMGSetType(), PCMGSetCycleType(), PCMGSetCycleTypeOnLevel()

beginner

Location#

include/petscpctypes.h

Edit on GitLab