Sets the preconditioning side.


#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

      PC_LEFT      - left preconditioning (default)
      PC_RIGHT     - right preconditioning
      PC_SYMMETRIC - symmetric preconditioning

Options Database Key#

  • -ksp_pc_side <right,left,symmetric> - KSP preconditioner side


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. However, note that symmetric preconditioning can be emulated by using either right or left preconditioning and a pre or post processing step.

Setting the PCSide often affects the default norm type. See KSPSetNormType() for details.

See Also#

KSP: Linear System Solvers, KSPGetPCSide(), KSPSetNormType(), KSPGetNormType(), KSP





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