:orphan: # 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 [](ch_snes), `SNES`, `SNESSolve()`, `SNESGetConvergedReason()`, `KSPSetNormType()`, `KSPSetConvergenceTest()`, `KSPSetPCSide()` ## Level advanced ## Location include/petscsnes.h --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscsnes.h) [Index of all SNES routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)