:orphan: # PCSetDiagonalScale Indicates the left scaling to use to apply an additional left and right scaling as needed by certain time-stepping codes. ## Synopsis ``` #include "petscksp.h" PetscErrorCode PCSetDiagonalScale(PC pc, Vec s) ``` Logically Collective ## Input Parameters - ***pc -*** the preconditioner context - ***s -*** scaling vector ## Notes The system solved via the Krylov method is ```none 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}. ## See Also `PCCreate()`, `PCSetUp()`, `PCDiagonalScaleLeft()`, `PCDiagonalScaleRight()`, `PCGetDiagonalScale()` ## Level intermediate ## Location src/ksp/pc/interface/precon.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/pc/interface/precon.c) [Index of all PC routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)