dune-fem 2.12-git
Loading...
Searching...
No Matches
Dune::Fem::NewtonParameter< SolverParam > Struct Template Reference

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

Inheritance diagram for Dune::Fem::NewtonParameter< SolverParam >:
Inheritance graph

Public Member Functions

 NewtonParameter (const SolverParam &baseParameter, const std::string keyPrefix="fem.solver.nonlinear.")
 
template<class Parameter , std::enable_if_t<!std::is_base_of< SolverParam, Parameter >::value &&!std::is_same< Parameter, ParameterReader >::value, int > i = 0>
 NewtonParameter (const Parameter &solverParameter, const std::string keyPrefix="fem.solver.nonlinear.")
 
template<class ParamReader , std::enable_if_t<!std::is_same< ParamReader, SolverParam >::value &&std::is_same< ParamReader, ParameterReader >::value, int > i = 0>
 NewtonParameter (const ParamReader &parameter, const std::string keyPrefix="fem.solver.nonlinear.")
 
void checkForcingErrorMeasure ()
 
const ParameterReaderparameter () const
 
const SolverParam & solverParameter () const
 
const SolverParam & linear () const
 
virtual void reset ()
 
virtual double tolerance () const
 
virtual void setTolerance (const double tol)
 
virtual bool verbose () const
 
virtual void setVerbose (bool verb)
 
virtual int maxIterations () const
 
virtual void setMaxIterations (const int maxIter)
 
virtual int maxLinearIterations () const
 = max iterations of each linear solve
 
virtual void setMaxLinearIterations (const int maxLinearIter)
 
virtual int maxLineSearchIterations () const
 
virtual void setMaxLineSearchIterations (const int maxLineSearchIter)
 
 LIST_OF_INT (LineSearchMethod, none=0, simple=1)
 
virtual int lineSearch () const
 
virtual void setLineSearch (const int method)
 
 LIST_OF_INT (Forcing, none=0, eisenstatwalker=1)
 
virtual int forcing () const
 
virtual void setForcing (const int strategy)
 
virtual double eisenstatWalkerEtaMax () const
 
virtual void setEisenstatWalkerEtaMax (const double etaMax)
 
virtual double eisenstatWalkerGamma () const
 
virtual void setEisenstatWalkerGamma (const double gamma)
 
virtual bool simplified () const
 return true if simplified Newton is to be used
 
virtual bool forceNonLinear () const
 
virtual ParamDefault * clone () const
 

Protected Member Functions

void checkDeprecatedParameters () const
 
std::string replaceNonLinearWithLinear (const std::string &keyPrefix) const
 
const ParamImpl & asImp () const
 

Protected Attributes

std::shared_ptr< SolverParam > baseParam_
 
const std::string keyPrefix_
 
ParameterReader parameter_
 

Constructor & Destructor Documentation

◆ NewtonParameter() [1/3]

template<class SolverParam = SolverParameter>
Dune::Fem::NewtonParameter< SolverParam >::NewtonParameter ( const SolverParam &  baseParameter,
const std::string  keyPrefix = "fem.solver.nonlinear." 
)
inline

◆ NewtonParameter() [2/3]

template<class SolverParam = SolverParameter>
template<class Parameter , std::enable_if_t<!std::is_base_of< SolverParam, Parameter >::value &&!std::is_same< Parameter, ParameterReader >::value, int > i = 0>
Dune::Fem::NewtonParameter< SolverParam >::NewtonParameter ( const Parameter solverParameter,
const std::string  keyPrefix = "fem.solver.nonlinear." 
)
inline

◆ NewtonParameter() [3/3]

template<class SolverParam = SolverParameter>
template<class ParamReader , std::enable_if_t<!std::is_same< ParamReader, SolverParam >::value &&std::is_same< ParamReader, ParameterReader >::value, int > i = 0>
Dune::Fem::NewtonParameter< SolverParam >::NewtonParameter ( const ParamReader &  parameter,
const std::string  keyPrefix = "fem.solver.nonlinear." 
)
inline

Member Function Documentation

◆ asImp()

template<class ParamDefault , class ParamImpl >
const ParamImpl & Dune::Fem::LocalParameter< ParamDefault, ParamImpl >::asImp ( ) const
inlineprotectedinherited

◆ checkDeprecatedParameters()

template<class SolverParam = SolverParameter>
void Dune::Fem::NewtonParameter< SolverParam >::checkDeprecatedParameters ( ) const
inlineprotected

◆ checkForcingErrorMeasure()

template<class SolverParam = SolverParameter>
void Dune::Fem::NewtonParameter< SolverParam >::checkForcingErrorMeasure ( )
inline

◆ clone()

◆ eisenstatWalkerEtaMax()

template<class SolverParam = SolverParameter>
virtual double Dune::Fem::NewtonParameter< SolverParam >::eisenstatWalkerEtaMax ( ) const
inlinevirtual

Maximum allowed forcing term eta for Eisenstat-Walker. Key: nonlinear.eisenstatwalker.etamax (default: 0.99) For degenerate problems reduce towards 0.1.

◆ eisenstatWalkerGamma()

template<class SolverParam = SolverParameter>
virtual double Dune::Fem::NewtonParameter< SolverParam >::eisenstatWalkerGamma ( ) const
inlinevirtual

Safeguard/superlinear-convergence decay parameter for Eisenstat-Walker. Key: nonlinear.eisenstatwalker.gamma (default: 0.1) For degenerate problems increase towards 0.5-0.9.

◆ forceNonLinear()

template<class SolverParam = SolverParameter>
virtual bool Dune::Fem::NewtonParameter< SolverParam >::forceNonLinear ( ) const
inlinevirtual

◆ forcing()

template<class SolverParam = SolverParameter>
virtual int Dune::Fem::NewtonParameter< SolverParam >::forcing ( ) const
inlinevirtual

◆ linear()

template<class SolverParam = SolverParameter>
const SolverParam & Dune::Fem::NewtonParameter< SolverParam >::linear ( ) const
inline

◆ lineSearch()

template<class SolverParam = SolverParameter>
virtual int Dune::Fem::NewtonParameter< SolverParam >::lineSearch ( ) const
inlinevirtual

◆ LIST_OF_INT() [1/2]

template<class SolverParam = SolverParameter>
Dune::Fem::NewtonParameter< SolverParam >::LIST_OF_INT ( Forcing  ,
none  = 0,
eisenstatwalker  = 1 
)

◆ LIST_OF_INT() [2/2]

template<class SolverParam = SolverParameter>
Dune::Fem::NewtonParameter< SolverParam >::LIST_OF_INT ( LineSearchMethod  ,
none  = 0,
simple  = 1 
)

◆ maxIterations()

template<class SolverParam = SolverParameter>
virtual int Dune::Fem::NewtonParameter< SolverParam >::maxIterations ( ) const
inlinevirtual

◆ maxLinearIterations()

template<class SolverParam = SolverParameter>
virtual int Dune::Fem::NewtonParameter< SolverParam >::maxLinearIterations ( ) const
inlinevirtual

= max iterations of each linear solve

◆ maxLineSearchIterations()

template<class SolverParam = SolverParameter>
virtual int Dune::Fem::NewtonParameter< SolverParam >::maxLineSearchIterations ( ) const
inlinevirtual

◆ parameter()

template<class SolverParam = SolverParameter>
const ParameterReader & Dune::Fem::NewtonParameter< SolverParam >::parameter ( ) const
inline

◆ replaceNonLinearWithLinear()

template<class SolverParam = SolverParameter>
std::string Dune::Fem::NewtonParameter< SolverParam >::replaceNonLinearWithLinear ( const std::string keyPrefix) const
inlineprotected

◆ reset()

template<class SolverParam = SolverParameter>
virtual void Dune::Fem::NewtonParameter< SolverParam >::reset ( )
inlinevirtual

◆ setEisenstatWalkerEtaMax()

template<class SolverParam = SolverParameter>
virtual void Dune::Fem::NewtonParameter< SolverParam >::setEisenstatWalkerEtaMax ( const double  etaMax)
inlinevirtual

◆ setEisenstatWalkerGamma()

template<class SolverParam = SolverParameter>
virtual void Dune::Fem::NewtonParameter< SolverParam >::setEisenstatWalkerGamma ( const double  gamma)
inlinevirtual

◆ setForcing()

template<class SolverParam = SolverParameter>
virtual void Dune::Fem::NewtonParameter< SolverParam >::setForcing ( const int  strategy)
inlinevirtual

◆ setLineSearch()

template<class SolverParam = SolverParameter>
virtual void Dune::Fem::NewtonParameter< SolverParam >::setLineSearch ( const int  method)
inlinevirtual

◆ setMaxIterations()

template<class SolverParam = SolverParameter>
virtual void Dune::Fem::NewtonParameter< SolverParam >::setMaxIterations ( const int  maxIter)
inlinevirtual

◆ setMaxLinearIterations()

template<class SolverParam = SolverParameter>
virtual void Dune::Fem::NewtonParameter< SolverParam >::setMaxLinearIterations ( const int  maxLinearIter)
inlinevirtual

◆ setMaxLineSearchIterations()

template<class SolverParam = SolverParameter>
virtual void Dune::Fem::NewtonParameter< SolverParam >::setMaxLineSearchIterations ( const int  maxLineSearchIter)
inlinevirtual

◆ setTolerance()

template<class SolverParam = SolverParameter>
virtual void Dune::Fem::NewtonParameter< SolverParam >::setTolerance ( const double  tol)
inlinevirtual

◆ setVerbose()

template<class SolverParam = SolverParameter>
virtual void Dune::Fem::NewtonParameter< SolverParam >::setVerbose ( bool  verb)
inlinevirtual

◆ simplified()

template<class SolverParam = SolverParameter>
virtual bool Dune::Fem::NewtonParameter< SolverParam >::simplified ( ) const
inlinevirtual

return true if simplified Newton is to be used

◆ solverParameter()

template<class SolverParam = SolverParameter>
const SolverParam & Dune::Fem::NewtonParameter< SolverParam >::solverParameter ( ) const
inline

◆ tolerance()

template<class SolverParam = SolverParameter>
virtual double Dune::Fem::NewtonParameter< SolverParam >::tolerance ( ) const
inlinevirtual

◆ verbose()

template<class SolverParam = SolverParameter>
virtual bool Dune::Fem::NewtonParameter< SolverParam >::verbose ( ) const
inlinevirtual

Member Data Documentation

◆ baseParam_

template<class SolverParam = SolverParameter>
std::shared_ptr<SolverParam> Dune::Fem::NewtonParameter< SolverParam >::baseParam_
protected

◆ keyPrefix_

template<class SolverParam = SolverParameter>
const std::string Dune::Fem::NewtonParameter< SolverParam >::keyPrefix_
protected

◆ parameter_

template<class SolverParam = SolverParameter>
ParameterReader Dune::Fem::NewtonParameter< SolverParam >::parameter_
protected

The documentation for this struct was generated from the following file: