:orphan: # PCGALERKIN Build (part of) a preconditioner by P S R (where P is often R^T) ## Note Use ```none `PCGalerkinSetRestriction`(pc,R) and/or `PCGalerkinSetInterpolation`(pc,P) `PCGalerkinGetKSP`(pc,&ksp); `KSPSetOperators`(ksp,A,....) ... ``` ## Developer Notes If `KSPSetOperators()` has not been called on the inner `KSP` then `PCGALERKIN` could use `MatRARt()` or `MatPtAP()` to compute the operators automatically. Should there be a prefix for the inner `KSP`? There is no `KSPSetFromOptions_Galerkin()` that calls `KSPSetFromOptions()` on the inner `KSP` ## See Also `PCCreate()`, `PCSetType()`, `PCType`, `PC`, `PCSHELL`, `PCKSP`, `PCGalerkinSetRestriction()`, `PCGalerkinSetInterpolation()`, `PCGalerkinGetKSP()` ## Level intermediate ## Location src/ksp/pc/impls/galerkin/galerkin.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/pc/impls/galerkin/galerkin.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)