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


#include "petscksp.h" 
PetscErrorCode  PCDiagonalScaleRight(PC pc,Vec in,Vec out)
Logically Collective on PC

Input Parameters

pc - the preconditioner context
in - input vector
out - scaled vector (maybe the same as in)

Level: intermediate


The system solved via the Krylov method is
          D M A D^{-1} y = D M b  for left preconditioning or
          D A M D^{-1} z = D b for right preconditioning

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

PCCreate(), PCSetUp(), PCDiagonalScaleLeft(), PCDiagonalScaleSet(), PCDiagonalScale()