KASKADE 7 development version
Public Member Functions | Public Attributes | List of all members
Kaskade::AbstractNewtonDirection Class Referenceabstract

Class that models the functionality of a (possibly inexact) linear solver. More...

#include <abstract_interface.hh>

Detailed Description

Class that models the functionality of a (possibly inexact) linear solver.

Definition at line 270 of file abstract_interface.hh.

Inheritance diagram for Kaskade::AbstractNewtonDirection:
Kaskade::SimpleAdaptiveRefinement Kaskade::FinalAdaptiveRefinement Kaskade::FixedSolverWithErrorEstimate

Public Member Functions

void ordinary (AbstractFunctionSpaceElement &correction, AbstractLinearization &linearization)
 
void simplified (AbstractFunctionSpaceElement &correction, AbstractLinearization const &linearization, AbstractLinearization const &oldlinearization) const
 
void simplified (AbstractFunctionSpaceElement &correction, AbstractLinearization const &linearization) const
 
virtual void setRelativeAccuracy (double accuracy)=0
 Specify accuracy that should be achieved. More...
 
virtual void setAbsoluteAccuracy (double)
 Specify accuracy that should be achieved. More...
 
virtual double getRelativeAccuracy ()=0
 Get accuracy that was actually achieved. More...
 
virtual double getAbsoluteAccuracy ()=0
 Get accuracy that was actually achieved. More...
 
virtual bool improvementPossible ()=0
 
virtual bool changedGrid ()
 
virtual ~AbstractNewtonDirection ()
 
virtual void doSolve (AbstractFunctionSpaceElement &correction, AbstractLinearization &lin)=0
 Solve Newton System: correction = +F'(iterate)^{-1}F(iterate) More...
 
virtual void doResolve (AbstractFunctionSpaceElement &correction, AbstractLinearization const &lin, AbstractLinearization const &olin) const =0
 Solve simplified Newton system: scorrection = +F'(iterate)^{-1}F(trialIterate) More...
 
virtual void doResolve (AbstractFunctionSpaceElement &correction, AbstractLinearization const &lin) const =0
 Solve simplified Newton system: scorrection = +F'(iterate)^{-1}F(trialIterate) More...
 

Public Attributes

boost::signals2::signal< void()> changed
 

Constructor & Destructor Documentation

◆ ~AbstractNewtonDirection()

virtual Kaskade::AbstractNewtonDirection::~AbstractNewtonDirection ( )
inlinevirtual

Definition at line 305 of file abstract_interface.hh.

Member Function Documentation

◆ changedGrid()

virtual bool Kaskade::AbstractNewtonDirection::changedGrid ( )
inlinevirtual

Reimplemented in Kaskade::SimpleAdaptiveRefinement.

Definition at line 303 of file abstract_interface.hh.

◆ doResolve() [1/2]

virtual void Kaskade::AbstractNewtonDirection::doResolve ( AbstractFunctionSpaceElement correction,
AbstractLinearization const &  lin 
) const
pure virtual

Solve simplified Newton system: scorrection = +F'(iterate)^{-1}F(trialIterate)

Implemented in Kaskade::SimpleAdaptiveRefinement.

◆ doResolve() [2/2]

virtual void Kaskade::AbstractNewtonDirection::doResolve ( AbstractFunctionSpaceElement correction,
AbstractLinearization const &  lin,
AbstractLinearization const &  olin 
) const
pure virtual

Solve simplified Newton system: scorrection = +F'(iterate)^{-1}F(trialIterate)

Implemented in Kaskade::SimpleAdaptiveRefinement.

Referenced by Kaskade::SimpleAdaptiveRefinement::doResolve(), and simplified().

◆ doSolve()

virtual void Kaskade::AbstractNewtonDirection::doSolve ( AbstractFunctionSpaceElement correction,
AbstractLinearization lin 
)
pure virtual

Solve Newton System: correction = +F'(iterate)^{-1}F(iterate)

Implemented in Kaskade::SimpleAdaptiveRefinement.

Referenced by ordinary().

◆ getAbsoluteAccuracy()

virtual double Kaskade::AbstractNewtonDirection::getAbsoluteAccuracy ( )
pure virtual

Get accuracy that was actually achieved.

Implemented in Kaskade::SimpleAdaptiveRefinement.

◆ getRelativeAccuracy()

virtual double Kaskade::AbstractNewtonDirection::getRelativeAccuracy ( )
pure virtual

Get accuracy that was actually achieved.

Implemented in Kaskade::SimpleAdaptiveRefinement.

◆ improvementPossible()

virtual bool Kaskade::AbstractNewtonDirection::improvementPossible ( )
pure virtual

◆ ordinary()

void Kaskade::AbstractNewtonDirection::ordinary ( AbstractFunctionSpaceElement correction,
AbstractLinearization linearization 
)
inline

This method is not const, since the internal state of the solver may be modified Computes an undamped ordinary Newton step, i.e., \(correction=-F'(x)^{-1}F(x)\)

Definition at line 275 of file abstract_interface.hh.

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

◆ setAbsoluteAccuracy()

virtual void Kaskade::AbstractNewtonDirection::setAbsoluteAccuracy ( double  )
inlinevirtual

Specify accuracy that should be achieved.

Reimplemented in Kaskade::SimpleAdaptiveRefinement, and Kaskade::FinalAdaptiveRefinement.

Definition at line 295 of file abstract_interface.hh.

◆ setRelativeAccuracy()

virtual void Kaskade::AbstractNewtonDirection::setRelativeAccuracy ( double  accuracy)
pure virtual

Specify accuracy that should be achieved.

Implemented in Kaskade::SimpleAdaptiveRefinement, and Kaskade::FinalAdaptiveRefinement.

◆ simplified() [1/2]

void Kaskade::AbstractNewtonDirection::simplified ( AbstractFunctionSpaceElement correction,
AbstractLinearization const &  linearization 
) const
inline

Computes an undamped simplified Newton step, i.e., correction=-F'(xold)^{-1}F(x) where F'(xold)^{-1} has been kept from an earlier ordinary() call

Definition at line 287 of file abstract_interface.hh.

◆ simplified() [2/2]

void Kaskade::AbstractNewtonDirection::simplified ( AbstractFunctionSpaceElement correction,
AbstractLinearization const &  linearization,
AbstractLinearization const &  oldlinearization 
) const
inline

Computes an undamped simplified Newton step, i.e., correction=-F'(xold)^{-1}F(x)

Definition at line 280 of file abstract_interface.hh.

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

Member Data Documentation

◆ changed

boost::signals2::signal<void()> Kaskade::AbstractNewtonDirection::changed
mutable

Definition at line 319 of file abstract_interface.hh.


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