Skip to main content
`Ctrl`+`K`

# 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 `PC` 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, 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*} \]

## See Also

KSP: Linear System Solvers, `PC`, `PCCreate()`, `PCSetUp()`, `PCDiagonalScaleLeft()`, `PCDiagonalScaleRight()`, `PCSetDiagonalScale()`

## Level

developer

## Location

src/ksp/pc/interface/precon.c

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