Skip to main content
`Ctrl`+`K`

# SNESNormSchedule

Frequency with which the norm is computed during a nonliner solve

## Synopsis

    typedef enum {
      SNES_NORM_DEFAULT            = -1,
      SNES_NORM_NONE               = 0,
      SNES_NORM_ALWAYS             = 1,
      SNES_NORM_INITIAL_ONLY       = 2,
      SNES_NORM_FINAL_ONLY         = 3,
      SNES_NORM_INITIAL_FINAL_ONLY = 4
    } SNESNormSchedule;

## Values

- `SNES_NORM_DEFAULT` - use the default behavior for the current `SNESType`

- `SNES_NORM_NONE` - avoid all norm computations

- `SNES_NORM_ALWAYS` - compute the norms whenever possible

- `SNES_NORM_INITIAL_ONLY` - compute the norm only when the algorithm starts

- `SNES_NORM_FINAL_ONLY` - compute the norm only when the algorithm finishes

- `SNES_NORM_INITIAL_FINAL_ONLY` - compute the norm at the start and end of the algorithm

## Notes

Support for these is highly dependent on the solver.

Some options limit the convergence tests that can be used.

The `SNES_NORM_NONE` option is most commonly used when the nonlinear solver is being used as a smoother, for example for `SNESFAS`

This is primarily used to turn off extra norm and function computation when the solvers are composed.

## See Also

SNES: Nonlinear Solvers, `SNES`, `SNESSolve()`, `SNESGetConvergedReason()`, `KSPSetNormType()`, `KSPSetConvergenceTest()`, `KSPSetPCSide()`

## Level

advanced

## Location

include/petscsnes.h

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