KASKADE 7 development version
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Kaskade::DampedCovariantNewtonMethod Class Reference

Damped Newton's method that measures the Newton contraction via a simplified Newton step. More...

#include <newton_damped.hh>

Detailed Description

Damped Newton's method that measures the Newton contraction via a simplified Newton step.

Affine covariant damping strategy after Deuflhard '04

Definition at line 108 of file newton_damped.hh.

Inheritance diagram for Kaskade::DampedCovariantNewtonMethod:
Kaskade::NewtonsMethod Kaskade::Algorithm

Public Types

typedef DampedCovariantNewtonParameters Parameters
 

Public Member Functions

 DampedCovariantNewtonMethod (AbstractNewtonDirection &l, AbstractChart &chart_, AbstractNorm &n, DampedCovariantNewtonParameters &p_)
 
virtual DampedCovariantNewtonParametersgetParameters ()
 
void setDampingFactorStart (double df)
 
void solve (AbstractFunctional *f, AbstractFunctionSpaceElement &x)
 Solve the system f=0 with starting value x. On (successful) exit, the solution is x, otherwise it is left unmodified. More...
 
void oneStep (AbstractFunctional *f, AbstractLinearization *l, AbstractFunctionSpaceElement &x)
 Perform one Newton step (which may be several trial steps, if damping is applied) More...
 
void resolve (AbstractFunctionSpaceElement &x, AbstractLinearization const &l)
 
void setDesiredAccuracy (double da)
 set the desired accuracy More...
 
void resetParameters ()
 Reset all algorithmic parameters to their default values. More...
 
int stepsPerformed ()
 
bool changedGrid ()
 
virtual void getSearchDirection (AbstractFunctionSpaceElement &direction)
 
AbstractLinearization const & getLastLinearization ()
 
AbstractLinearization const & getLastSimplifiedLinearization ()
 
void performTiming (bool doit)
 
void reportOnIteration (int level)
 

Protected Member Functions

virtual RegularityTest regularityTest (double scalingFactor)
 
virtual void computeTrialIterate (AbstractFunctionSpaceElement &trialIterate, AbstractFunctionSpaceElement const &direction, AbstractLinearization const &lin)
 
virtual void initialize ()
 Called before Iteration. More...
 
virtual void initNewtonStep ()
 
virtual double & dampingFactor ()
 Return a damping factor. More...
 
virtual void predictNextDampingFactor (AbstractFunctionSpaceElement &correction)
 Should compute a damping factor. More...
 
void setDesiredRelativeAccuracy (double ra)
 set the desired accuracy More...
 
virtual AcceptanceTest evaluateTrialIterate (AbstractFunctionSpaceElement const &trialIterate, AbstractFunctionSpaceElement const &correction, AbstractLinearization const &lin)
 
virtual void updateIterate (AbstractFunctionSpaceElement &iterate, AbstractFunctionSpaceElement &trialIterate, AbstractLinearization const &lin)
 update an accepted iterate, default: iterate=trialIterate More...
 
virtual Convergence convergenceTest (AbstractFunctionSpaceElement const &correction, AbstractFunctionSpaceElement const &iterate)
 Return true, if convergence is detected, false otherwise. More...
 
virtual void finalize (int)
 Called after Iteration. More...
 
virtual void logQuantities ()
 Performs logging of quantities. More...
 
virtual double maxSteps ()
 return the maximal number of steps More...
 
virtual void terminationMessage (int flag)
 
int algorithmWrapper ()
 Run algorithm, completely with initialization and finalization. More...
 
int oneStepWrapper ()
 Run one step of algorithm. More...
 

Protected Attributes

DampedCovariantNewtonParametersp
 
std::unique_ptr< AbstractFunctionSpaceElementscorrection
 
std::unique_ptr< AbstractFunctionSpaceElementstartIterate
 
std::unique_ptr< AbstractFunctionSpaceElementauxvector
 
AbstractFunctionalfunctional
 
AbstractNewtonDirectionlinearSolver
 
AbstractChartchart
 
AbstractNormnorm
 
std::unique_ptr< AbstractFunctionSpaceElementiterate
 
std::unique_ptr< AbstractFunctionSpaceElementtrialIterate
 
std::unique_ptr< AbstractFunctionSpaceElementcorrection
 
std::unique_ptr< AbstractLinearizationnewtonLinearization
 
std::unique_ptr< AbstractLinearizationsimplifiedLinearization
 
AbstractLinearizationnewtonPtr
 
int step
 
int report
 

Member Typedef Documentation

◆ Parameters

Definition at line 111 of file newton_damped.hh.

Constructor & Destructor Documentation

◆ DampedCovariantNewtonMethod()

Kaskade::DampedCovariantNewtonMethod::DampedCovariantNewtonMethod ( AbstractNewtonDirection l,
AbstractChart chart_,
AbstractNorm n,
DampedCovariantNewtonParameters p_ 
)
inline

Definition at line 113 of file newton_damped.hh.

Member Function Documentation

◆ algorithmWrapper()

int Kaskade::Algorithm::algorithmWrapper ( )
protectedinherited

Run algorithm, completely with initialization and finalization.

◆ changedGrid()

bool Kaskade::NewtonsMethod::changedGrid ( )
inlineinherited

Definition at line 125 of file newton_base.hh.

◆ computeTrialIterate()

virtual void Kaskade::DampedCovariantNewtonMethod::computeTrialIterate ( AbstractFunctionSpaceElement trialIterate,
AbstractFunctionSpaceElement const &  direction,
AbstractLinearization const &  lin 
)
protectedvirtual

Reimplemented from Kaskade::NewtonsMethod.

◆ convergenceTest()

virtual Convergence Kaskade::DampedCovariantNewtonMethod::convergenceTest ( AbstractFunctionSpaceElement const &  correction,
AbstractFunctionSpaceElement const &  iterate 
)
protectedvirtual

Return true, if convergence is detected, false otherwise.

Implements Kaskade::NewtonsMethod.

◆ dampingFactor()

virtual double & Kaskade::DampedCovariantNewtonMethod::dampingFactor ( )
inlineprotectedvirtual

Return a damping factor.

Reimplemented from Kaskade::NewtonsMethod.

Definition at line 129 of file newton_damped.hh.

◆ evaluateTrialIterate()

virtual AcceptanceTest Kaskade::DampedCovariantNewtonMethod::evaluateTrialIterate ( AbstractFunctionSpaceElement const &  trialIterate,
AbstractFunctionSpaceElement const &  correction,
AbstractLinearization const &  lin 
)
protectedvirtual

function to evaluate the quality of the trial iterate. returns true if trial iterate is acceptable as new iterate i.e. if some damping factor is of appropriate size

Implements Kaskade::NewtonsMethod.

◆ finalize()

virtual void Kaskade::NewtonsMethod::finalize ( int  )
protectedvirtualinherited

Called after Iteration.

Reimplemented from Kaskade::Algorithm.

◆ getLastLinearization()

AbstractLinearization const & Kaskade::NewtonsMethod::getLastLinearization ( )
inlineinherited

Definition at line 139 of file newton_base.hh.

◆ getLastSimplifiedLinearization()

AbstractLinearization const & Kaskade::NewtonsMethod::getLastSimplifiedLinearization ( )
inlineinherited

Definition at line 141 of file newton_base.hh.

◆ getParameters()

virtual DampedCovariantNewtonParameters & Kaskade::DampedCovariantNewtonMethod::getParameters ( )
inlinevirtual

Reimplemented from Kaskade::NewtonsMethod.

Definition at line 119 of file newton_damped.hh.

◆ getSearchDirection()

virtual void Kaskade::NewtonsMethod::getSearchDirection ( AbstractFunctionSpaceElement direction)
inlinevirtualinherited

Definition at line 127 of file newton_base.hh.

◆ initialize()

virtual void Kaskade::DampedCovariantNewtonMethod::initialize ( )
protectedvirtual

Called before Iteration.

Reimplemented from Kaskade::NewtonsMethod.

◆ initNewtonStep()

virtual void Kaskade::DampedCovariantNewtonMethod::initNewtonStep ( )
protectedvirtual

Reimplemented from Kaskade::NewtonsMethod.

◆ logQuantities()

virtual void Kaskade::NewtonsMethod::logQuantities ( )
inlineprotectedvirtualinherited

Performs logging of quantities.

Definition at line 150 of file newton_base.hh.

◆ maxSteps()

virtual double Kaskade::NewtonsMethod::maxSteps ( )
inlineprotectedvirtualinherited

return the maximal number of steps

Definition at line 163 of file newton_base.hh.

◆ oneStep()

void Kaskade::NewtonsMethod::oneStep ( AbstractFunctional f,
AbstractLinearization l,
AbstractFunctionSpaceElement x 
)
inherited

Perform one Newton step (which may be several trial steps, if damping is applied)

◆ oneStepWrapper()

int Kaskade::Algorithm::oneStepWrapper ( )
protectedinherited

Run one step of algorithm.

◆ performTiming()

void Kaskade::Algorithm::performTiming ( bool  doit)
inlineinherited

Definition at line 181 of file algorithm_base.hh.

◆ predictNextDampingFactor()

virtual void Kaskade::DampedCovariantNewtonMethod::predictNextDampingFactor ( AbstractFunctionSpaceElement correction)
protectedvirtual

Should compute a damping factor.

Reimplemented from Kaskade::NewtonsMethod.

◆ regularityTest()

virtual RegularityTest Kaskade::DampedCovariantNewtonMethod::regularityTest ( double  scalingFactor)
protectedvirtual

trial iterate = iterate + scalingFactor * correction if this was successful, return RegularityTest::Passed, otherwise (e.g. if scalingFactor is too small) RegularityTest::Failed false will lead to an unsuccessful exit of algorithm

Reimplemented from Kaskade::NewtonsMethod.

◆ reportOnIteration()

void Kaskade::Algorithm::reportOnIteration ( int  level)
inlineinherited

Definition at line 182 of file algorithm_base.hh.

◆ resetParameters()

void Kaskade::NewtonsMethod::resetParameters ( )
inlineinherited

Reset all algorithmic parameters to their default values.

Definition at line 121 of file newton_base.hh.

◆ resolve()

void Kaskade::NewtonsMethod::resolve ( AbstractFunctionSpaceElement x,
AbstractLinearization const &  l 
)
inlineinherited

Definition at line 105 of file newton_base.hh.

◆ setDampingFactorStart()

void Kaskade::DampedCovariantNewtonMethod::setDampingFactorStart ( double  df)
inline

Definition at line 121 of file newton_damped.hh.

◆ setDesiredAccuracy()

void Kaskade::NewtonsMethod::setDesiredAccuracy ( double  da)
inlineinherited

set the desired accuracy

Definition at line 117 of file newton_base.hh.

◆ setDesiredRelativeAccuracy()

void Kaskade::DampedCovariantNewtonMethod::setDesiredRelativeAccuracy ( double  ra)
inlineprotectedvirtual

set the desired accuracy

Reimplemented from Kaskade::NewtonsMethod.

Definition at line 134 of file newton_damped.hh.

◆ solve()

void Kaskade::NewtonsMethod::solve ( AbstractFunctional f,
AbstractFunctionSpaceElement x 
)
inherited

Solve the system f=0 with starting value x. On (successful) exit, the solution is x, otherwise it is left unmodified.

◆ stepsPerformed()

int Kaskade::NewtonsMethod::stepsPerformed ( )
inlineinherited

◆ terminationMessage()

virtual void Kaskade::NewtonsMethod::terminationMessage ( int  flag)
protectedvirtualinherited

Reimplemented from Kaskade::Algorithm.

◆ updateIterate()

virtual void Kaskade::DampedCovariantNewtonMethod::updateIterate ( AbstractFunctionSpaceElement iterate,
AbstractFunctionSpaceElement trialIterate,
AbstractLinearization const &  lin 
)
protectedvirtual

update an accepted iterate, default: iterate=trialIterate

Reimplemented from Kaskade::NewtonsMethod.

Member Data Documentation

◆ auxvector

std::unique_ptr<AbstractFunctionSpaceElement> Kaskade::DampedCovariantNewtonMethod::auxvector
protected

Definition at line 148 of file newton_damped.hh.

◆ chart

AbstractChart& Kaskade::NewtonsMethod::chart
protectedinherited

Definition at line 232 of file newton_base.hh.

Referenced by Kaskade::NewtonsMethod::computeTrialIterate().

◆ correction

std::unique_ptr<AbstractFunctionSpaceElement> Kaskade::NewtonsMethod::correction
protectedinherited

◆ functional

AbstractFunctional* Kaskade::NewtonsMethod::functional
protectedinherited

Definition at line 230 of file newton_base.hh.

◆ iterate

std::unique_ptr<AbstractFunctionSpaceElement> Kaskade::NewtonsMethod::iterate
protectedinherited

Definition at line 236 of file newton_base.hh.

◆ linearSolver

AbstractNewtonDirection& Kaskade::NewtonsMethod::linearSolver
protectedinherited

◆ newtonLinearization

std::unique_ptr<AbstractLinearization> Kaskade::NewtonsMethod::newtonLinearization
protectedinherited

◆ newtonPtr

AbstractLinearization* Kaskade::NewtonsMethod::newtonPtr
protectedinherited

Definition at line 240 of file newton_base.hh.

◆ norm

AbstractNorm& Kaskade::NewtonsMethod::norm
protectedinherited

◆ p

DampedCovariantNewtonParameters& Kaskade::DampedCovariantNewtonMethod::p
protected

◆ report

int Kaskade::Algorithm::report
protectedinherited

Definition at line 193 of file algorithm_base.hh.

Referenced by Kaskade::Algorithm::reportOnIteration().

◆ scorrection

std::unique_ptr<AbstractFunctionSpaceElement> Kaskade::DampedCovariantNewtonMethod::scorrection
protected

Definition at line 147 of file newton_damped.hh.

◆ simplifiedLinearization

std::unique_ptr<AbstractLinearization> Kaskade::NewtonsMethod::simplifiedLinearization
protectedinherited

◆ startIterate

std::unique_ptr<AbstractFunctionSpaceElement> Kaskade::DampedCovariantNewtonMethod::startIterate
protected

Definition at line 147 of file newton_damped.hh.

◆ step

int Kaskade::NewtonsMethod::step
protectedinherited

Definition at line 242 of file newton_base.hh.

Referenced by Kaskade::NewtonsMethod::stepsPerformed().

◆ trialIterate

std::unique_ptr<AbstractFunctionSpaceElement> Kaskade::NewtonsMethod::trialIterate
protectedinherited

Definition at line 236 of file newton_base.hh.

Referenced by Kaskade::NewtonsMethod::computeTrialIterate().


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