PCDiagonalScaleLeft#

Scales a vector by the left scaling as needed by certain time-stepping codes.

Synopsis#

#include "petscksp.h" 
PetscErrorCode PCDiagonalScaleLeft(PC pc, Vec in, Vec out)

Logically Collective

Input Parameters#

  • pc - the preconditioner context

  • in - input vector

  • out - scaled vector (maybe the same as in)

Notes#

The system solved via the Krylov method is, for left and right preconditioning,

\[ \begin{align*} D M A D^{-1} y = D M b \\ D A M D^{-1} z = D b. \end{align*} \]

PCDiagonalScaleLeft() scales a vector by \(D\). PCDiagonalScaleRight() scales a vector by \(D^{-1}\).

If diagonal scaling is turned off and in is not out then in is copied to out

See Also#

KSP: Linear System Solvers, PCCreate(), PCSetUp(), PCSetDiagonalScale(), PCDiagonalScaleRight(), MatDiagonalScale()

Level#

intermediate

Location#

src/ksp/pc/interface/precon.c


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