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

A Newton method that uses a pointwise damping strategy to cope with bounds. More...

#include <newton_damped.hh>

Detailed Description

A Newton method that uses a pointwise damping strategy to cope with bounds.

Definition at line 229 of file newton_damped.hh.

Inheritance diagram for Kaskade::StateConstraintsNewtonMethod:
Kaskade::NewtonsMethod Kaskade::Algorithm

Public Types

typedef ModifiedCovariantNewtonParameters Parameters
 

Public Member Functions

 StateConstraintsNewtonMethod (AbstractNewtonDirection &l, AbstractChart &chart_, AbstractNorm &n, Parameters &p_)
 
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)
 
virtual ParametersgetParameters ()
 
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)
 
virtual void computeTrialIterate (AbstractFunctionSpaceElement &trialIterate, AbstractFunctionSpaceElement const &direction, AbstractLinearization const &lin)
 
AbstractLinearization const & getLastLinearization ()
 
AbstractLinearization const & getLastSimplifiedLinearization ()
 
void performTiming (bool doit)
 
void reportOnIteration (int level)
 

Protected Member Functions

void setDesiredRelativeAccuracy (double ra)
 set the desired accuracy More...
 
void initialize ()
 Called before Iteration. More...
 
void predictNextDampingFactor (AbstractFunctionSpaceElement &correction)
 Should compute a damping factor. More...
 
void initNewtonStep ()
 
virtual AcceptanceTest evaluateTrialIterate (AbstractFunctionSpaceElement const &trialIterate, AbstractFunctionSpaceElement const &correction, AbstractLinearization const &lin)
 
void updateIterate (AbstractFunctionSpaceElement &iterate, AbstractFunctionSpaceElement &trialIterate, AbstractLinearization const &lin)
 update an accepted iterate, default: iterate=trialIterate More...
 
Convergence convergenceTest (AbstractFunctionSpaceElement const &correction, AbstractFunctionSpaceElement const &iterate)
 Return true, if convergence is detected, false otherwise. More...
 
RegularityTest regularityTest (double scalingFactor)
 
virtual void finalize (int)
 Called after Iteration. More...
 
virtual void logQuantities ()
 Performs logging of quantities. More...
 
virtual double & dampingFactor ()
 Return a damping factor. 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

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 233 of file newton_damped.hh.

Constructor & Destructor Documentation

◆ StateConstraintsNewtonMethod()

Kaskade::StateConstraintsNewtonMethod::StateConstraintsNewtonMethod ( AbstractNewtonDirection l,
AbstractChart chart_,
AbstractNorm n,
Parameters p_ 
)
inline

Definition at line 236 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::NewtonsMethod::computeTrialIterate ( AbstractFunctionSpaceElement trialIterate,
AbstractFunctionSpaceElement const &  direction,
AbstractLinearization const &  lin 
)
inlinevirtualinherited

Reimplemented in Kaskade::DampedCovariantNewtonMethod.

Definition at line 134 of file newton_base.hh.

◆ convergenceTest()

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

Return true, if convergence is detected, false otherwise.

Implements Kaskade::NewtonsMethod.

◆ dampingFactor()

virtual double & Kaskade::NewtonsMethod::dampingFactor ( )
inlineprotectedvirtualinherited

Return a damping factor.

Reimplemented in Kaskade::DampedCovariantNewtonMethod.

Definition at line 161 of file newton_base.hh.

◆ evaluateTrialIterate()

virtual AcceptanceTest Kaskade::StateConstraintsNewtonMethod::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 Parameters & Kaskade::NewtonsMethod::getParameters ( )
inlinevirtualinherited

Reimplemented in Kaskade::DampedCovariantNewtonMethod.

Definition at line 115 of file newton_base.hh.

◆ getSearchDirection()

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

Definition at line 127 of file newton_base.hh.

◆ initialize()

void Kaskade::StateConstraintsNewtonMethod::initialize ( )
protectedvirtual

Called before Iteration.

Reimplemented from Kaskade::NewtonsMethod.

◆ initNewtonStep()

void Kaskade::StateConstraintsNewtonMethod::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()

void Kaskade::StateConstraintsNewtonMethod::predictNextDampingFactor ( AbstractFunctionSpaceElement correction)
inlineprotectedvirtual

Should compute a damping factor.

Reimplemented from Kaskade::NewtonsMethod.

Definition at line 248 of file newton_damped.hh.

◆ regularityTest()

RegularityTest Kaskade::StateConstraintsNewtonMethod::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.

◆ setDesiredAccuracy()

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

set the desired accuracy

Definition at line 117 of file newton_base.hh.

◆ setDesiredRelativeAccuracy()

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

set the desired accuracy

Reimplemented from Kaskade::NewtonsMethod.

Definition at line 244 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()

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

update an accepted iterate, default: iterate=trialIterate

Reimplemented from Kaskade::NewtonsMethod.

Member Data Documentation

◆ 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

Definition at line 236 of file newton_base.hh.

Referenced by predictNextDampingFactor().

◆ 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

Definition at line 233 of file newton_base.hh.

Referenced by predictNextDampingFactor().

◆ report

int Kaskade::Algorithm::report
protectedinherited

Definition at line 193 of file algorithm_base.hh.

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

◆ simplifiedLinearization

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

◆ 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: