:orphan: # PCMGRegisterCoarseSpaceConstructor Adds a method to the `PCMG` package for coarse space construction. ## Synopsis ``` #include "petscksp.h" PetscErrorCode PCMGRegisterCoarseSpaceConstructor(const char name[], PetscErrorCode (*function)(PC, PetscInt, DM, KSP, PetscInt, Mat, Mat *)) ``` Not Collective ## Input Parameters - ***name -*** name of the constructor - ***function -*** constructor routine ## Calling sequence of `function` ```none PetscErrorCode my_csp(PC pc, PetscInt l, DM dm, KSP smooth, PetscInt Nc, Mat initGuess, Mat *coarseSp) ``` - ***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 Note How come this is not used by `PCGAMG`? ## See Also `PCMG`, `PCMGGetCoarseSpaceConstructor()`, `PCRegister()` ## Level advanced ## Location src/ksp/pc/impls/mg/mg.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/pc/impls/mg/mg.c) [Index of all PC routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)