SNESNEWTONTR — PETSc 3.23.0 documentation

Skip to main content
`Ctrl`+`K`

# SNESNEWTONTR

Newton based nonlinear solver that uses a trust-region strategy

## Options Database Keys

- -snes_tr_deltamin - trust region parameter, minimum size of trust region

- -snes_tr_deltamax - trust region parameter, max size of trust region (default: 1e10)

- -snes_tr_delta0 - trust region parameter, initial size of trust region (default: 0.2)

- -snes_tr_eta1 - trust region parameter eta1 <= eta2, rho > eta1 breaks out of the inner iteration (default: 0.001)

- -snes_tr_eta2 - trust region parameter, rho <= eta2 shrinks the trust region (default: 0.25)

- -snes_tr_eta3 - trust region parameter eta3 > eta2, rho >= eta3 expands the trust region (default: 0.75)

- -snes_tr_t1 - trust region parameter, shrinking factor of trust region (default: 0.25)

- -snes_tr_t2 - trust region parameter, expanding factor of trust region (default: 2.0)

- -snes_tr_norm_type <1,2,infinity> - Type of norm for trust region bounds (default: “2”)

- -snes_tr_fallback_type <newton,cauchy,dogleg> - Solution strategy to test reduction when step is outside of trust region. Can use scaled Newton direction, Cauchy point (Steepest Descent direction) or dogleg method.

## Notes

The code is largely based on the book [NW06] and supports minimizing objective functions using a quadratic model. Quasi-Newton models are also supported.

Default step computation uses the Newton direction, but a dogleg type update is also supported. The 1- and infinity-norms are also supported when computing the trust region bounds.

## References

[NW06]

Jorge Nocedal and Stephen Wright. Numerical optimization. Springer Science & Business Media, 2006.

## See Also

SNES: Nonlinear Solvers, `SNESCreate()`, `SNES`, `SNESSetType()`, `SNESSetObjective()`, `SNESNewtonTRSetTolerances()`, `SNESNewtonTRSetUpdateParameters()` `SNESNewtonTRSetNormType()`, `SNESNewtonTRSetFallbackType()`, `SNESNewtonTRSetQNType()` `SNESNewtonTRSetPostCheck()`, `SNESNewtonTRSetPreCheck()`,

## Level

beginner

## Location

src/snes/impls/tr/tr.c

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