KSPSetPCSide#
Sets the preconditioning side.
Synopsis#
#include "petscksp.h"
#include "petscmat.h"
PetscErrorCode KSPSetPCSide(KSP ksp, PCSide side)
Logically Collective
Input Parameter#
ksp - iterative solver 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
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. However, note that
symmetric preconditioning can be emulated by using either right or left
preconditioning, modifying the application of the matrix (with a custom Mat
argument to KSPSetOperators()
,
and using a pre ‘KSPSetPreSolve()or post processing
KSPSetPostSolve()` step).
Setting the PCSide
often affects the default norm type. See KSPSetNormType()
for details.
See Also#
KSP: Linear System Solvers, KSPGetPCSide()
, KSPSetNormType()
, KSPGetNormType()
, KSP
, KSPSetPreSolve()
, KSPSetPostSolve()
Level#
intermediate
Location#
src/ksp/ksp/interface/itfunc.c
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages