:orphan: # KSPSetPCSide Sets the preconditioning side. ## Synopsis ``` #include "petscksp.h" #include "petscmat.h" PetscErrorCode KSPSetPCSide(KSP ksp, PCSide side) ``` Logically Collective ## Input Parameter - ***ksp -*** iterative context obtained from `KSPCreate()` ## Output Parameter - ***side -*** the preconditioning side, where side is one of ```none PC_LEFT - left preconditioning (default) PC_RIGHT - right preconditioning PC_SYMMETRIC - symmetric preconditioning ``` ## Options Database Key - ***-ksp_pc_side -*** `KSP` preconditioner side ## Notes Left preconditioning is used by default for most Krylov methods except KSPFGMRES which only supports right preconditioning. For methods changing the side of the preconditioner changes the norm type that is used, see `KSPSetNormType()`. Symmetric preconditioning is currently available only for the KSPQCG method. Note, however, that symmetric preconditioning can be emulated by using either right or left preconditioning and a pre or post processing step. Setting the PC side often affects the default norm type. See `KSPSetNormType()` for details. ## See Also [](ch_ksp), `KSPGetPCSide()`, `KSPSetNormType()`, `KSPGetNormType()`, `KSP` ## Level intermediate ## Location src/ksp/ksp/interface/itfunc.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/ksp/interface/itfunc.c) [Index of all KSP routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)