DUNE-FEM (unstable)

Dune::Fem::EisenstatWalkerStrategy Class Reference

Adaptive tolerance selection for linear solver. More...

#include <dune/fem/solver/newtoninverseoperator.hh>

Public Member Functions

 EisenstatWalkerStrategy (const double newtonTolerance, const double etaMax=0.99, const double gamma=0.1)
 
void setTolerance (const double newtonTolerance)
 
void setEtaMax (const double etaMax)
 
void setGamma (const double gamma)
 

Detailed Description

Adaptive tolerance selection for linear solver.

Note
Prevents over-solving linear systems far away from solution. Source: "Globally Convergent Inexact Newton Methods", Stanley C. Eisenstat and Homer F. Walker, https://doi.org/10.1137/0804022.
etaMax and gamma are configurable via the constructor, via setEtaMax()/setGamma() setters, or via the parameter system: fem.solver.nonlinear.eisenstatwalker.etamax (default: 0.99) fem.solver.nonlinear.eisenstatwalker.gamma (default: 0.1) For degenerate problems consider etaMax~0.1-0.3, gamma~0.5-0.9.

Constructor & Destructor Documentation

◆ EisenstatWalkerStrategy()

Dune::Fem::EisenstatWalkerStrategy::EisenstatWalkerStrategy ( const double  newtonTolerance,
const double  etaMax = 0.99,
const double  gamma = 0.1 
)
inline

constructor

Parameters
[in]newtonToleranceabsolute tolerance of the Newton method
[in]etaMaxmaximum forcing term (default: 0.99)
[in]gammasafeguard parameter (default: 0.1)

Member Function Documentation

◆ setEtaMax()

void Dune::Fem::EisenstatWalkerStrategy::setEtaMax ( const double  etaMax)
inline

Set the maximum allowed forcing term. Reduce from 0.99 towards e.g. 0.1 to make EW less aggressive.

◆ setGamma()

void Dune::Fem::EisenstatWalkerStrategy::setGamma ( const double  gamma)
inline

Set the safeguard / superlinear-convergence decay parameter. Increase from 0.1 towards e.g. 0.9 for more conservative behaviour.

◆ setTolerance()

void Dune::Fem::EisenstatWalkerStrategy::setTolerance ( const double  newtonTolerance)
inline

Set the Newton (nonlinear) tolerance used in the lower bound of eta.


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden & Uni Heidelberg  |  generated with Hugo v0.111.3 (Apr 21, 12:01, 2026)