SNESNEWTONTRDC#

Newton based nonlinear solver that uses trust-region dogleg method with Cauchy direction

Options Database Keys#

  • -snes_trdc_tol - trust region tolerance

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

  • -snes_trdc_eta2 - trust region parameter 0.0 <= eta1 <= eta2, rho <= eta2 shrinks the trust region (default: eta2=0.25)

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

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

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

  • -snes_trdc_deltaM - trust region parameter, max size of trust region, \(deltaM*norm2(x)\) (default: 0.5)

  • -snes_trdc_delta0 - trust region parameter, initial size of trust region, \(delta0*norm2(x)\) (default: 0.1)

  • -snes_trdc_auto_scale_max <auto_scale_max> - used with auto_scale_multiphase, caps the maximum auto-scaling factor

  • -snes_trdc_use_cauchy <use_cauchy> - True uses dogleg Cauchy (Steepest Descent direction) step & direction in the trust region algorithm

  • -snes_trdc_auto_scale_multiphase <auto_scale_multiphase> - True turns on auto-scaling for multivariable block matrix for Cauchy and trust region

Notes#

SNESNEWTONTRDC only works for root-finding problems and does not support objective functions. The main difference with respect to SNESNEWTONTR is that SNESNEWTONTRDC scales the trust region by the norm of the current linearization point. Future version may extend the SNESNEWTONTR code and deprecate SNESNEWTONTRDC.

For details, see [PHVL21]

References#

[PHVL21]

Heeho D Park, Glenn E Hammond, Albert J Valocchi, and Tara LaForce. Linear and nonlinear solvers for simulating multiphase flow within large-scale engineered subsurface systems. Advances in Water Resources, 156:104029, 2021.

See Also#

SNES: Nonlinear Solvers, SNESCreate(), SNES, SNESSetType(), SNESNEWTONLS, SNESNewtonTRSetTolerances(), SNESNewtonTRDCPreCheck(), SNESNewtonTRDCGetPreCheck(), SNESNewtonTRDCSetPostCheck(), SNESNewtonTRDCGetPostCheck(), SNESNewtonTRDCGetRhoFlag(), SNESNewtonTRDCSetPreCheck()

Level#

advanced

Location#

src/snes/impls/ntrdc/ntrdc.c


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