:orphan: # PCGetDiagonalScale Indicates if the preconditioner applies an additional left and right scaling as needed by certain time-stepping codes. ## Synopsis ``` #include "petscksp.h" PetscErrorCode PCGetDiagonalScale(PC pc, PetscBool *flag) ``` Logically Collective ## Input Parameter - ***pc -*** the preconditioner context ## Output Parameter - ***flag -*** `PETSC_TRUE` if it applies the scaling ## Note If this returns `PETSC_TRUE` then 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 ``` ## See Also `PC`, `PCCreate()`, `PCSetUp()`, `PCDiagonalScaleLeft()`, `PCDiagonalScaleRight()`, `PCSetDiagonalScale()` ## Level developer ## 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)