NewtonStdLSearch< T > Class Template Reference

The standard (sufficient descent) line search strategy for he Newton method. More...

#include <NewtonSolver.hpp>

Inheritance diagram for NewtonStdLSearch< T >:

Inheritance graph
[legend]
Collaboration diagram for NewtonStdLSearch< T >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual void PrintParam ()
 Prints the name and parameters of the strategy.
virtual void PreProcess (GridVec< T > &u)
 Allocates the auxiliary vector.
virtual double Run (NonLinSys< T > &p, GridVec< T > &u, double old_d_norm, GridVec< T > &update, T damp, GridVec< T > &new_defect)
 Fulfils the line search.
virtual void PostProcess ()
 Releases the memory.
 NewtonStdLSearch (unsigned the_disp_type, int the_max_steps, double the_suff_descent=0.1, double the_lss_factor=2)
 Constructor.
 NewtonStdLSearch (SGParam *list)
 Constructor for reading the halting criteria from SG parameters.
virtual ~NewtonStdLSearch ()

Detailed Description

template<typename T>
class NewtonStdLSearch< T >

The standard (sufficient descent) line search strategy for he Newton method.

This class implements one possible line-search strategy for the Newton method. It is based on the sufficient descent criterion: For non-linear system $ F (u) = 0 $, current guess $u$ of the solution, search direction $q$ and initial damping factor $\alpha$, we try guesses $ u^{(k)} = u + \alpha_k q $ with $ \alpha_k = \displaystyle {{\alpha_0} \over {s^k}} $ ($s$ the line search step reduction factor) for $ k = 1 \dots $ and choose the first one with $ \| F (u^{(k)}) \|_2 < (1 - \epsilon \alpha_k) \| F (u) \|_2 $. (Here, $ \epsilon $ is the sufficient descent factor.) If after the maximum number of the line search steps such the guess is not found, we choose the last one.

Note:
For the Newton method and the Quasi-Newton methods, one should choose $ \alpha_0 = 1 $. For the fixed-point iteration, this is often not an optimal value.


Constructor & Destructor Documentation

template<typename T>
NewtonStdLSearch< T >::NewtonStdLSearch ( unsigned  the_disp_type,
int  the_max_steps,
double  the_suff_descent = 0.1,
double  the_lss_factor = 2 
) [inline]

Constructor.

Parameters:
[in] the_disp_type The display type
[in] the_max_steps Maximum number of the line search steps
[in] the_suff_descent The sufficient descent factor
[in] the_lss_factor The line search step reduction factor

template<typename T>
NewtonStdLSearch< T >::NewtonStdLSearch ( SGParam list  )  [inline]

Constructor for reading the halting criteria from SG parameters.

The parameter names are:

Parameters:
[in] list The list of the parameters

template<typename T>
virtual NewtonStdLSearch< T >::~NewtonStdLSearch (  )  [inline, virtual]

Virtual destructor


Member Function Documentation

template<typename T>
void NewtonStdLSearch< T >::PrintParam (  )  [inline, virtual]

Prints the name and parameters of the strategy.

Implements NewtonLineSearch< T >.

template<typename T>
virtual void NewtonStdLSearch< T >::PreProcess ( GridVec< T > &  u  )  [inline, virtual]

Allocates the auxiliary vector.

Parameters:
[in] u Vector with the same sizes as the solution

Implements NewtonLineSearch< T >.

template<typename T>
double NewtonStdLSearch< T >::Run ( NonLinSys< T > &  p,
GridVec< T > &  u,
double  old_d_norm,
GridVec< T > &  update,
damp,
GridVec< T > &  new_defect 
) [inline, virtual]

Fulfils the line search.

Parameters:
[in] p The non-linear system
[in] u The current guess (the updated guess is saved here, too)
[in] old_d_norm The 2-norm of the current defect
[in] update The search direction
[in] damp The damping factor
[in] new_defect To save the new defect
Returns:
the 2-norm of the new defect

Implements NewtonLineSearch< T >.

template<typename T>
virtual void NewtonStdLSearch< T >::PostProcess (  )  [inline, virtual]

Releases the memory.

Implements NewtonLineSearch< T >.


The documentation for this class was generated from the following files:
Generated on Fri Sep 21 12:34:23 2007 for SG2 by  doxygen 1.5.2