#include <NewtonSolver.hpp>
Inheritance diagram for NewtonStdLSearch< T >:


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 () |
This class implements one possible line-search strategy for the Newton method. It is based on the sufficient descent criterion: For non-linear system
, current guess
of the solution, search direction
and initial damping factor
, we try guesses
with
(
the line search step reduction factor) for
and choose the first one with
. (Here,
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.
. For the fixed-point iteration, this is often not an optimal value.
| NewtonStdLSearch< T >::NewtonStdLSearch | ( | unsigned | the_disp_type, | |
| int | the_max_steps, | |||
| double | the_suff_descent = 0.1, |
|||
| double | the_lss_factor = 2 | |||
| ) | [inline] |
Constructor.
| [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 |
| NewtonStdLSearch< T >::NewtonStdLSearch | ( | SGParam * | list | ) | [inline] |
Constructor for reading the halting criteria from SG parameters.
The parameter names are:
| [in] | list | The list of the parameters |
| virtual NewtonStdLSearch< T >::~NewtonStdLSearch | ( | ) | [inline, virtual] |
Virtual destructor
| void NewtonStdLSearch< T >::PrintParam | ( | ) | [inline, virtual] |
| virtual void NewtonStdLSearch< T >::PreProcess | ( | GridVec< T > & | u | ) | [inline, virtual] |
Allocates the auxiliary vector.
| [in] | u | Vector with the same sizes as the solution |
Implements NewtonLineSearch< T >.
| double NewtonStdLSearch< T >::Run | ( | NonLinSys< T > & | p, | |
| GridVec< T > & | u, | |||
| double | old_d_norm, | |||
| GridVec< T > & | update, | |||
| T | damp, | |||
| GridVec< T > & | new_defect | |||
| ) | [inline, virtual] |
Fulfils the line search.
| [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 |
Implements NewtonLineSearch< T >.
| virtual void NewtonStdLSearch< T >::PostProcess | ( | ) | [inline, virtual] |
1.5.2