Skip to main content
`Ctrl`+`K`

# KSPRichardsonSetSelfScale

Sets Richardson to automatically determine optimal scaling at each iteration to minimize the 2-norm of the preconditioned residual

## Synopsis

    #include "petscksp.h"
    PetscErrorCode KSPRichardsonSetSelfScale(KSP ksp, PetscBool scale)

Logically Collective

## Input Parameters

- ksp - the iterative context

- scale - `PETSC_TRUE` or the default of `PETSC_FALSE`

## Options Database Key

- -ksp_richardson_self_scale - Use self-scaling

## Note

Requires two extra work vectors. Uses an extra `VecAXPY()` and `VecDotNorm2()` per iteration.

## Developer Note

Could also minimize the 2-norm of the true residual with one less work vector

## See Also

KSP: Linear System Solvers, `KSPRICHARDSON`, `KSPRichardsonSetScale()`

## Level

intermediate

## Location

src/ksp/ksp/impls/rich/richscale.c

## Implementations

KSPRichardsonSetSelfScale_Richardson() in src/ksp/ksp/impls/rich/rich.c

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