Skip to main content
`Ctrl`+`K`

# PCMGGalerkinType

Determines if the coarse grid operators are computed via the Galerkin process with the `PCType` of `PCMG`

## Synopsis

    typedef enum {
      PC_MG_GALERKIN_BOTH,
      PC_MG_GALERKIN_PMAT,
      PC_MG_GALERKIN_MAT,
      PC_MG_GALERKIN_NONE,
      PC_MG_GALERKIN_EXTERNAL
    } PCMGGalerkinType;

## Values

- `PC_MG_GALERKIN_PMAT` - computes the `pmat` (matrix from which the preconditioner is built) via the Galerkin process from the finest grid

- `PC_MG_GALERKIN_MAT` - computes the `mat` (matrix used to apply the operator) via the Galerkin process from the finest grid

- `PC_MG_GALERKIN_BOTH` - computes both the `mat` and `pmat` via the Galerkin process (if pmat == mat the construction is only done once

- `PC_MG_GALERKIN_NONE` - neither operator is computed via the Galerkin process, the user must provide the operator

## Note

Users should never set `PC_MG_GALERKIN_EXTERNAL`, it is used by `PCHYPRE` and `PCML`

## See Also

Preconditioners, `PCMG`, `PC`, `PCMGSetCycleType()`

## Level

beginner

## Location

include/petscpctypes.h

## Examples

src/ksp/ksp/tutorials/ex35.cxx
src/ksp/ksp/tutorials/ex36.cxx

## Examples

src/ksp/ksp/tutorials/ex70.c
src/ksp/ksp/tutorials/ex56.c
src/ksp/ksp/tutorials/ex42.c

Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages