1#ifndef NEWTON_DAMPED_HH
2#define NEWTON_DAMPED_HH
148 std::unique_ptr<AbstractFunctionSpaceElement>
auxvector;
268 bool failedbydamping;
270 std::unique_ptr<AbstractFunctionSpaceElement> scorrection;
271 std::unique_ptr<AbstractFunctionSpaceElement> startIterate;
Abstract Vector for function space algorithms.
Class that models the functionality of a (possibly inexact) linear solver.
Damped Newton's method that measures the Newton contraction via a simplified Newton step.
void setDampingFactorStart(double df)
virtual AcceptanceTest evaluateTrialIterate(AbstractFunctionSpaceElement const &trialIterate, AbstractFunctionSpaceElement const &correction, AbstractLinearization const &lin)
virtual void initNewtonStep()
void setDesiredRelativeAccuracy(double ra)
set the desired accuracy
virtual Convergence convergenceTest(AbstractFunctionSpaceElement const &correction, AbstractFunctionSpaceElement const &iterate)
Return true, if convergence is detected, false otherwise.
DampedCovariantNewtonParameters & p
virtual void initialize()
Called before Iteration.
std::unique_ptr< AbstractFunctionSpaceElement > startIterate
std::unique_ptr< AbstractFunctionSpaceElement > scorrection
virtual DampedCovariantNewtonParameters & getParameters()
virtual void predictNextDampingFactor(AbstractFunctionSpaceElement &correction)
Should compute a damping factor.
std::unique_ptr< AbstractFunctionSpaceElement > auxvector
DampedCovariantNewtonParameters Parameters
DampedCovariantNewtonMethod(AbstractNewtonDirection &l, AbstractChart &chart_, AbstractNorm &n, DampedCovariantNewtonParameters &p_)
virtual double & dampingFactor()
Return a damping factor.
virtual void updateIterate(AbstractFunctionSpaceElement &iterate, AbstractFunctionSpaceElement &trialIterate, AbstractLinearization const &lin)
update an accepted iterate, default: iterate=trialIterate
virtual RegularityTest regularityTest(double scalingFactor)
virtual void computeTrialIterate(AbstractFunctionSpaceElement &trialIterate, AbstractFunctionSpaceElement const &direction, AbstractLinearization const &lin)
Paramters that are used and Logged by GuardedCovariantNewtonMethod.
double reduceOnOutsideDomain
LoggedQuantity< double > absoluteAccuracyLast
LoggedQuantity< double > SCorrByCorr
DampedCovariantNewtonParameters(double desiredAccuracy_, int maxSteps_, double minDampingFactor_=1e-12)
LoggedQuantity< double > lengthOfStep
void doForAll(LQAction::ToDo td)
To be overloaded by derived class.
LoggedQuantity< double > totalCorrection
LastRejected lastrejected
LoggedQuantity< double > dampingFactor
Paramters that are used and Logged by GuardedCovariantNewtonMethod.
LoggedQuantity< double > omega
LoggedQuantity< double > normCorrLast
friend class GuardedCovariantNewtonMethod
LoggedQuantity< double > Theta
GuardedCovariantNewtonParameters(double desiredAccuracy_, int maxSteps_)
LoggedQuantity< double > omega0
virtual void doForAll(LQAction::ToDo td)
To be overloaded by derived class.
LoggedQuantity< double > normSCorr
void doAction(LQAction::ToDo td, std::string const &name_="noName")
LoggedQuantity< double > totalCorrection
ModifiedCovariantNewtonParameters(double desiredAccuracy_, int maxSteps_, double ThetaMaxAllowed_, double mdf_=1e-12)
LoggedQuantity< double > normModSCorr
LoggedQuantity< double > normModCorr
virtual void doForAll(LQAction::ToDo td)
To be overloaded by derived class.
LoggedQuantity< double > Theta0
friend class ModifiedCovariantNewtonMethod
LoggedQuantity< double > normCorr
virtual void reset()
Reset all quantities in this class.
virtual void doForAll(LQAction::ToDo td)
To be overloaded by derived class.
Base class for Newton's method. Defines the main algorithm, potentially using damping.
std::unique_ptr< AbstractFunctionSpaceElement > correction
std::unique_ptr< AbstractFunctionSpaceElement > iterate
std::unique_ptr< AbstractFunctionSpaceElement > trialIterate
A Newton method that uses a pointwise damping strategy to cope with bounds.
RegularityTest regularityTest(double scalingFactor)
void updateIterate(AbstractFunctionSpaceElement &iterate, AbstractFunctionSpaceElement &trialIterate, AbstractLinearization const &lin)
update an accepted iterate, default: iterate=trialIterate
ModifiedCovariantNewtonParameters Parameters
void predictNextDampingFactor(AbstractFunctionSpaceElement &correction)
Should compute a damping factor.
virtual AcceptanceTest evaluateTrialIterate(AbstractFunctionSpaceElement const &trialIterate, AbstractFunctionSpaceElement const &correction, AbstractLinearization const &lin)
StateConstraintsNewtonMethod(AbstractNewtonDirection &l, AbstractChart &chart_, AbstractNorm &n, Parameters &p_)
void initialize()
Called before Iteration.
Convergence convergenceTest(AbstractFunctionSpaceElement const &correction, AbstractFunctionSpaceElement const &iterate)
Return true, if convergence is detected, false otherwise.
void setDesiredRelativeAccuracy(double ra)
set the desired accuracy