Skip to main content
`Ctrl`+`K`

# PCMGRegisterCoarseSpaceConstructor

Adds a method to the `PCMG` package for coarse space construction.

## Synopsis

    #include "petscksp.h"
    PetscErrorCode PCMGRegisterCoarseSpaceConstructor(const char name[], PetscErrorCode (*function)(PC pc, PetscInt l, DM dm, KSP smooth, PetscInt Nc, Mat initGuess, Mat *coarseSp))

Not Collective

## Input Parameters

- name - name of the constructor

- function - constructor routine

## Calling sequence of `function`

- pc - The `PC` object

- l - The multigrid level, 0 is the coarse level

- dm - The `DM` for this level

- smooth - The level smoother

- Nc - The size of the coarse space

- initGuess - Basis for an initial guess for the space

- coarseSp - A basis for the computed coarse space

## Developer Notes

How come this is not used by `PCGAMG`?

## See Also

KSP: Linear System Solvers, `PCMG`, `PCMGGetCoarseSpaceConstructor()`, `PCRegister()`

## Level

advanced

## Location

src/ksp/pc/impls/mg/mg.c

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