| FEAT 3
    Finite Element Analysis Toolbox | 
Fixed step line search. More...
#include <fixed_step_linesearch.hpp>
 
  
| Public Types | |
| typedef Linesearch< Functional_, Filter_ > | BaseClass | 
| Our base class.  More... | |
| typedef Functional_::DataType | DataType | 
| Underlying floating point type.  More... | |
| typedef Filter_ | FilterType | 
| Filter type to be applied to the gradient of the functional.  More... | |
| typedef Functional_::VectorTypeR | VectorType | 
| Input vector type for the functional's gradient.  More... | |
| Public Member Functions | |
| FixedStepLinesearch (const String §ion_name, const PropertyMap *section, Functional_ &functional, Filter_ &filter) | |
| Constructor using a PropertyMap.  More... | |
| FixedStepLinesearch (Functional_ &functional, Filter_ &filter, const DataType step_length, bool keep_iterates=false) | |
| Standard constructor.  More... | |
| virtual | ~FixedStepLinesearch () | 
| virtual Status | apply (Vector_ &vec_cor, const Vector_ &vec_def)=0 | 
| Solver application method.  More... | |
| virtual Status | apply (VectorType &vec_cor, const VectorType &vec_dir) override | 
| Applies the solver, setting the initial guess to zero.  More... | |
| DataType | calc_convergence_rate () const | 
| Computes the overall convergence rate: (defect_final / defect_initial) ^ (1 / number of iterations)  More... | |
| DataType | calc_defect_reduction () const | 
| Computes the overall defect reduction factor: (defect_final / defect_inital)  More... | |
| virtual Status | correct (VectorType &vec_sol, const VectorType &vec_dir) override | 
| Applies the solver, making use of an initial guess.  More... | |
| virtual void | done () | 
| Finalization method.  More... | |
| virtual void | done_numeric () | 
| Numeric finalization method.  More... | |
| virtual void | done_symbolic () override | 
| Symbolic finalization method.   More... | |
| virtual void | force_defect_norm_calc (bool force) | 
| Forces the calculation of defect norms in every iteration.  More... | |
| DataType | get_def_final () const | 
| Returns the final defect.  More... | |
| DataType | get_def_initial () const | 
| Returns the initial defect.  More... | |
| void | get_defect_from_grad (VectorType &vec_def) const | 
| Sets the initial gradient from a defect vector.  More... | |
| DataType | get_div_abs () const | 
| Returns the absolute divergence.  More... | |
| DataType | get_div_rel () const | 
| Returns the relative divergence.  More... | |
| DataType | get_final_fval () const | 
| Gets the functional value of the last iteration.  More... | |
| const VectorType & | get_initial_sol () const | 
| Gets the initial solution the linesearch started with.  More... | |
| Index | get_max_iter () const | 
| Returns the maximum number of iterations.  More... | |
| Index | get_min_iter () const | 
| Returns the minimal number of iterations.  More... | |
| Index | get_min_stag_iter () const | 
| Returns the minimum stagnation iteration count.  More... | |
| Index | get_num_iter () const | 
| Returns number of performed iterations.  More... | |
| String | get_plot_name () const | 
| Returns the plot name of the solver.  More... | |
| virtual DataType | get_rel_update () const override | 
| Get the relative update of the solver application.   More... | |
| DataType | get_stag_rate () const | 
| Returns the stagnation rate.  More... | |
| Status | get_status () const | 
| Returns the status.  More... | |
| virtual String | get_summary () const override | 
| Returns a summary string.  More... | |
| DataType | get_tol_abs () const | 
| Returns the absolute tolerance.  More... | |
| DataType | get_tol_abs_low () const | 
| Returns the lower absolute tolerance.  More... | |
| DataType | get_tol_rel () const | 
| Returns the relative tolerance.  More... | |
| virtual void | init () | 
| Initialization method.  More... | |
| virtual void | init_numeric () | 
| Numeric initialization method.  More... | |
| virtual void | init_symbolic () override | 
| Symbolic initialization method.   More... | |
| bool | is_converged () const | 
| checks for convergence  More... | |
| bool | is_converged (const DataType def_cur) const | 
| checks for convergence  More... | |
| bool | is_diverged () const | 
| checks for divergence  More... | |
| bool | is_diverged (const DataType def_cur) const | 
| checks for divergence  More... | |
| virtual String | name () const override | 
| Returns a descriptive string.   More... | |
| virtual void | plot_summary () const | 
| Plot a summary of the last solver run.  More... | |
| virtual void | reset () | 
| Resets various member variables in case the solver is reused.  More... | |
| void | set_dir_scaling (const bool b) | 
| Determines if search direction scaling is to be used.  More... | |
| void | set_div_abs (DataType div_abs) | 
| Sets the absolute divergence for the solver.  More... | |
| void | set_div_rel (DataType div_rel) | 
| Sets the relative divergence for the solver.  More... | |
| void | set_grad_from_defect (const VectorType &vec_def) | 
| Gets a defect vector from the final gradient.  More... | |
| void | set_initial_fval (DataType f0) | 
| Sets the intitial functional value.  More... | |
| void | set_max_iter (Index max_iter) | 
| Sets the maximum iteration count for the solver.  More... | |
| void | set_min_iter (Index min_iter) | 
| Sets the minimum iteration count for the solver.  More... | |
| void | set_min_stag_iter (Index min_iter) | 
| Sets the minimum stagnate iteration count for the solver.  More... | |
| void | set_plot_interval (const Index plot_interval) | 
| Sets the interval between two plot outputs, if any.  More... | |
| void | set_plot_mode (const PlotMode plot_mode) | 
| Sets the plot mode of the solver.  More... | |
| void | set_plot_name (const String &plot_name) | 
| Sets the plot name of the solver.  More... | |
| void | set_stag_rate (DataType rate) | 
| Sets the stagnation rate for the solver.  More... | |
| virtual void | set_step_length (DataType step_length) | 
| Sets the step length.  More... | |
| void | set_tol_abs (DataType tol_abs) | 
| Sets the absolute tolerance for the solver.  More... | |
| void | set_tol_abs_low (DataType tol_abs_low) | 
| Sets the lower absolute tolerance for the solver.  More... | |
| void | set_tol_curvature (DataType tol_curvature) | 
| Sets the tolerance for the sufficient decrease in curvature.  More... | |
| void | set_tol_decrease (DataType tol_decrease) | 
| Sets the tolerance for the sufficient decrease in functional value.  More... | |
| void | set_tol_rel (DataType tol_rel) | 
| Sets the relative tolerance for the solver.  More... | |
| void | set_tol_step (DataType tol_step) | 
| Sets the step length tolerance.  More... | |
| virtual void | trim_func_grad (DataType &func) | 
| Trims the function value and gradient according to some threshold.  More... | |
| Public Attributes | |
| std::deque< VectorType > * | iterates | 
| For debugging purposes, it is possible to save all iterates to this.  More... | |
| Protected Member Functions | |
| virtual Status | _analyze_defect (Index num_iter, DataType def_cur, DataType def_prev, bool check_stag) | 
| Internal function: analyze the current defect.  More... | |
| virtual DataType | _calc_def_norm (const VectorType &vec_def, const VectorType &vec_sol) | 
| Computes the defect norm.  More... | |
| virtual Status | _check_convergence (const DataType fval, const DataType df, const DataType alpha) | 
| Performs the line search convergence checks using the strong Wolfe conditions.  More... | |
| bool | _plot_iter (Status st=Status::progress) const | 
| Plot the current iteration?  More... | |
| virtual void | _plot_iter_line (Index num_iter, DataType def_cur, DataType def_prev) | 
| Plots an iteration line.  More... | |
| bool | _plot_summary () const | 
| Plot summary?  More... | |
| void | _print_line (const String &line) const | 
| Prints a line.  More... | |
| bool | _progress () const | 
| Progress iteration?  More... | |
| void | _set_comm (const Dist::Comm *comm) | 
| Sets the communicator for the solver directly.  More... | |
| void | _set_comm_by_matrix (const Matrix_ &matrix) | 
| Sets the communicator for the solver from a matrix.  More... | |
| void | _set_comm_by_vector (const Functional_::VectorTypeR &vector) | 
| Sets the communicator for the solver from a vector.  More... | |
| virtual Status | _set_initial_defect (const VectorType &vec_def, const VectorType &vec_sol) | 
| Internal function: sets the initial defect vector.  More... | |
| virtual Status | _set_new_defect (const VectorType &vec_def, const VectorType &vec_sol) | 
| Internal function: sets the new (next) defect vector.  More... | |
| virtual Status | _startup (DataType &alpha, DataType &fval, DataType &delta, const VectorType &vec_sol, const VectorType &vec_dir) | 
| Performs the startup of the iteration.  More... | |
| virtual Status | _update_defect (const DataType def_cur_norm) | 
| Internal function: sets the new (next) defect norm.  More... | |
| Protected Attributes | |
| DataType | _alpha_0 | 
| Initial line search parameter.  More... | |
| DataType | _alpha_min | 
| Line search parameter.  More... | |
| const Dist::Comm * | _comm | 
| Communicator of the solver.  More... | |
| DataType | _def_cur | 
| current defect  More... | |
| DataType | _def_init | 
| initial defect  More... | |
| DataType | _def_prev | 
| previous iteration defect  More... | |
| DataType | _delta_0 | 
| Initial <vec_dir, vec_grad>  More... | |
| bool | _dir_scaling | 
| DataType | _div_abs | 
| absolute divergence parameter  More... | |
| DataType | _div_rel | 
| relative divergence parameter  More... | |
| Filter_ & | _filter | 
| The filter to be applied to the functional's gradient.  More... | |
| bool | _force_def_norm_calc | 
| whether skipping of defect computation is allowed or not  More... | |
| Functional_ & | _functional | 
| The (nonlinear) functional.  More... | |
| DataType | _fval_0 | 
| Initial functional value.  More... | |
| DataType | _fval_min | 
| Functional functional value.  More... | |
| Index | _iter_digits | 
| iteration count digits for plotting  More... | |
| Index | _max_iter | 
| maximum number of iterations  More... | |
| Index | _min_iter | 
| minimum number of iterations  More... | |
| Index | _min_stag_iter | 
| minimum number of stagnation iterations  More... | |
| DataType | _norm_dir | 
| The 2-norm of the search direction.  More... | |
| DataType | _norm_sol | 
| The 2-norm of the iterate.  More... | |
| Index | _num_iter | 
| number of performed iterations  More... | |
| Index | _num_stag_iter | 
| number of consecutive stagnated iterations  More... | |
| Index | _plot_interval | 
| plot output interval  More... | |
| PlotMode | _plot_mode | 
| whether to plot something  More... | |
| String | _plot_name | 
| name of the solver in plots  More... | |
| DataType | _stag_rate | 
| stagnation rate  More... | |
| Status | _status | 
| current status of the solver  More... | |
| DataType | _tol_abs | 
| absolute tolerance parameter  More... | |
| DataType | _tol_abs_low | 
| absolute low tolerance parameter  More... | |
| DataType | _tol_curvature | 
| Tolerance for sufficient decrease in the norm of the gradient (Wolfe conditions)  More... | |
| DataType | _tol_decrease | 
| Tolerance for sufficient decrease in the functional value (Wolfe conditions)  More... | |
| DataType | _tol_rel | 
| relative tolerance parameter  More... | |
| DataType | _tol_step | 
| Tolerance for the update step.  More... | |
| DataType | _trim_threshold | 
| Threshold for trimming function value and gradient.  More... | |
| VectorType | _vec_grad | 
| Gradient vector.  More... | |
| VectorType | _vec_initial_sol | 
| Initial solution.  More... | |
| VectorType | _vec_pn | 
| descend direction vector, normalized for better numerical stability  More... | |
| VectorType | _vec_tmp | 
| temporary vector  More... | |
| Private Attributes | |
| DataType | _step_length | 
| The length of the step.  More... | |
Fixed step line search.
This does not perform a line search, it just returns a constant step size
Definition at line 22 of file fixed_step_linesearch.hpp.
| typedef Linesearch<Functional_, Filter_> FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::BaseClass | 
Our base class.
Definition at line 32 of file fixed_step_linesearch.hpp.
| typedef Functional_::DataType FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::DataType | 
Underlying floating point type.
Definition at line 30 of file fixed_step_linesearch.hpp.
| typedef Filter_ FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::FilterType | 
Filter type to be applied to the gradient of the functional.
Definition at line 26 of file fixed_step_linesearch.hpp.
| typedef Functional_::VectorTypeR FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::VectorType | 
Input vector type for the functional's gradient.
Definition at line 28 of file fixed_step_linesearch.hpp.
| 
 | inlineexplicit | 
Standard constructor.
| [in,out] | functional | The (nonlinear) functional. Cannot be const because it saves its own state. | 
| [in] | filter | Filter to apply to the functional's gradient. | 
| [in] | step_length | The length of the step returned by this "line search". | 
| [in] | keep_iterates | Keep all iterates in a std::deque. Defaults to false. | 
Definition at line 55 of file fixed_step_linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_alpha_min, and FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::_step_length.
| 
 | inlineexplicit | 
Constructor using a PropertyMap.
| [in] | section_name | The name of the config section, which it does not know by itself. | 
| [in] | section | A pointer to the PropertyMap section configuring this solver. | 
| [in] | functional | The functional. | 
| [in] | filter | The system filter. | 
Definition at line 81 of file fixed_step_linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_alpha_min, FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::_step_length, FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::name(), FEAT::PropertyMap::query(), FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::set_max_iter(), FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::set_step_length(), and XABORTM.
| 
 | inlinevirtual | 
Definition at line 103 of file fixed_step_linesearch.hpp.
| 
 | inlineprotectedvirtualinherited | 
Internal function: analyze the current defect.
| [in] | num_iter | Current number of iterations; usually = this->_num_iter. | 
| [in] | def_cur | Current defect norm; usually = this->_def_cur. | 
| [in] | def_prev | Previous defect norm; usually = this->_def_prev. | 
| [in] | check_stag | Specifies whether to check (and update) the stagnation criterion. This is typically set to falseif one wants to check anything else than the 'true' next defect norm. | 
Definition at line 866 of file iterative.hpp.
| 
 | inlineprotectedvirtualinherited | 
Computes the defect norm.
| [in] | vec_def | The current defect vector. | 
| [in] | vec_sol | The current solution vector approximation. | 
Definition at line 706 of file iterative.hpp.
| 
 | inlineprotectedvirtualinherited | 
Performs the line search convergence checks using the strong Wolfe conditions.
| [in] | fval | The current functional value | 
| [in] | df | The current directional derivative value: \( df = \left< \nabla f(x_0), d \right>\). | 
| [in] | alpha | The step size of the last update. | 
Also sets the current defect. The strong Wolfe conditions are
\[ f(x) < f(x_0) + \alpha c_1 \left< \nabla f(x_0), d \right> \wedge |\left< \nabla f(x), d \right>| < - c_2 \left< \nabla f(x_0), d \right>, \]
 where \(c_1\) is known as tol_decrease and \( c_2 \) is known as tol_curvature.
Definition at line 543 of file linesearch.hpp.
References FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_def_cur, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_def_init, FEAT::Solver::Linesearch< Functional_, Filter_ >::_delta_0, FEAT::Solver::Linesearch< Functional_, Filter_ >::_fval_0, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_iter_digits, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_max_iter, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_num_iter, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_plot_iter(), FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_plot_name, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_print_line(), FEAT::Solver::Linesearch< Functional_, Filter_ >::_tol_curvature, FEAT::Solver::Linesearch< Functional_, Filter_ >::_tol_decrease, FEAT::Solver::aborted, FEAT::Math::abs(), FEAT::Solver::diverged, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_num_iter(), FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::is_diverged(), FEAT::Math::isfinite(), FEAT::Solver::max_iter, FEAT::Solver::SolverBase< Vector_ >::name(), FEAT::String::pad_front(), FEAT::Solver::progress, FEAT::stringify(), FEAT::stringify_fp_sci(), and FEAT::Solver::success.
Referenced by FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::NewtonRaphsonLinesearch< Functional_, Filter_ >::_apply_intern(), and FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::_apply_intern().
| 
 | inlineprotectedinherited | 
Plot the current iteration?
| [in] | st | The status of the current iteration. | 
true if the plot mode is set to iter or all and the plot interval matches or the solver does not continue to the next iteration Definition at line 720 of file iterative.hpp.
| 
 | inlineprotectedvirtualinherited | 
Plots an iteration line.
| [in] | num_iter | Current number of iterations; usually = this->_num_iter. | 
| [in] | def_cur | Current defect norm; usually = this->_def_cur. | 
| [in] | def_prev | Previous defect norm; usually = this->_def_prev. | 
Definition at line 773 of file iterative.hpp.
| 
 | inlineprotectedinherited | 
Plot summary?
true if the plot mode is set to summary or all. Definition at line 731 of file iterative.hpp.
| 
 | inlineprotectedinherited | 
Prints a line.
| [in] | line | The line to be printed. | 
Definition at line 752 of file iterative.hpp.
| 
 | inlineprotectedinherited | 
Progress iteration?
true if the solver should process, otherwise false. Definition at line 741 of file iterative.hpp.
| 
 | inlineprotectedinherited | 
Sets the communicator for the solver directly.
| [in] | comm | A pointer to the communicator that is to be used by the solver. | 
Definition at line 667 of file iterative.hpp.
| 
 | inlineprotectedinherited | 
Sets the communicator for the solver from a matrix.
| [in] | matrix | A reference to a matrix. If 'Matrix_' is a 'Global::Matrix', then the communicator of the matrix gate is taken. | 
Definition at line 680 of file iterative.hpp.
| 
 | inlineprotectedinherited | 
Sets the communicator for the solver from a vector.
| [in] | vector | A reference to a vector. If 'Vector_' is a 'Global::Vector', then the communicator of the vector gate is taken. | 
Definition at line 692 of file iterative.hpp.
| 
 | inlineprotectedvirtualinherited | 
Internal function: sets the initial defect vector.
| [in] | vec_def | The initial defect vector. | 
| [in] | vec_sol | The current solution vector approximation. | 
Reimplemented in FEAT::Solver::QPenalty< Functional_ >.
Definition at line 802 of file iterative.hpp.
| 
 | inlineprotectedvirtualinherited | 
Internal function: sets the new (next) defect vector.
This function computes the defect vector's norm, increments the iteration count, plots an output line to std::cout and checks whether any of the stopping criterions is fulfilled.
| [in] | vec_def | The new defect vector. | 
| [in] | vec_sol | The current solution vector approximation. | 
Definition at line 924 of file iterative.hpp.
| 
 | inlineprotectedvirtualinherited | 
Performs the startup of the iteration.
| [out] | alpha | The initial step size value. | 
| [out] | fval | The initial functional value. | 
| [out] | delta | The initial direction derivative value: \( \delta = \left< dir, grad \right>\). | 
| [in] | vec_sol | The initial guess. | 
| [in] | vec_dir | The search direction. | 
The routine sets the initial data from "iteration 0" (needed for checking the strong Wolfe conditions later) and does some error checking.
Definition at line 464 of file linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_alpha_0, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_def_init, FEAT::Solver::Linesearch< Functional_, Filter_ >::_delta_0, FEAT::Solver::Linesearch< Functional_, Filter_ >::_fval_0, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_iter_digits, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_num_iter, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_plot_iter(), FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_plot_name, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_print_line(), FEAT::Solver::aborted, FEAT::Math::abs(), FEAT::Math::isfinite(), FEAT::String::pad_front(), FEAT::Solver::progress, FEAT::stringify(), FEAT::stringify_fp_sci(), and XABORTM.
Referenced by FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::NewtonRaphsonLinesearch< Functional_, Filter_ >::_apply_intern(), and FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::_apply_intern().
| 
 | inlineprotectedvirtualinherited | 
Internal function: sets the new (next) defect norm.
This function takes a pre-calculated defect vector norm, increments the iteration count, plots an output line to std::cout and checks whether any of the stopping criterions is fulfilled.
| [in] | def_cur_norm | The new defect norm. | 
Definition at line 970 of file iterative.hpp.
| 
 | pure virtualinherited | 
Solver application method.
This method applies the solver represented by this object onto a given defect vector and returns the corresponding correction vector.
correct() method which corrects an initial solution instead of starting with the null vector.| [out] | vec_cor | The vector that shall receive the solution of the linear system. It is assumed to be allocated, but its numerical contents may be undefined upon calling this method. | 
| [in] | vec_def | The vector that represents the right-hand-side of the linear system to be solved. | 
Implemented in FEAT::Solver::SchwarzPrecond< Global::Vector< LocalVector_, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > >, FEAT::Solver::CuSolverLU, FEAT::Solver::CuSolverQR, FEAT::Solver::ScalePrecond< Vector_, Filter_ >, FEAT::Solver::DiagonalPrecond< Vector_, Filter_ >, FEAT::Solver::MultiGrid< SystemMatrix_, SystemFilter_, TransferOperator_ >, FEAT::Solver::NLOptPrecond< VectorType_, FilterType_ >, FEAT::Solver::AmaVanka< Matrix_, Filter_ >, FEAT::Solver::ConvertPrecond< VectorOuter_, VectorInner_ >, FEAT::Solver::ConvertPrecond< Global::Vector< LocalVectorOuter_, MirrorOuter_ >, Global::Vector< LocalVectorInner_, MirrorInner_ > >, and FEAT::Solver::BFBT< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >.
Referenced by FEAT::Solver::solve().
| 
 | inlineoverridevirtual | 
Applies the solver, setting the initial guess to zero.
| [out] | vec_cor | Solution, gets zeroed | 
| [in] | vec_dir | Search direction | 
Definition at line 140 of file fixed_step_linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_filter, FEAT::Solver::Linesearch< Functional_, Filter_ >::_functional, FEAT::Solver::Linesearch< Functional_, Filter_ >::_norm_dir, FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::_step_length, and FEAT::Solver::success.
| 
 | inlineinherited | 
Computes the overall convergence rate: (defect_final / defect_initial) ^ (1 / number of iterations)
Definition at line 582 of file iterative.hpp.
| 
 | inlineinherited | 
Computes the overall defect reduction factor: (defect_final / defect_inital)
Definition at line 597 of file iterative.hpp.
| 
 | inlineoverridevirtual | 
Applies the solver, making use of an initial guess.
| [out] | vec_sol | Initial guess, gets overwritten by the solution | 
| [in] | vec_dir | Search direction | 
Implements FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >.
Definition at line 163 of file fixed_step_linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_filter, FEAT::Solver::Linesearch< Functional_, Filter_ >::_functional, FEAT::Solver::Linesearch< Functional_, Filter_ >::_fval_min, FEAT::Solver::Linesearch< Functional_, Filter_ >::_norm_dir, FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::_step_length, FEAT::Solver::Linesearch< Functional_, Filter_ >::_vec_grad, and FEAT::Solver::success.
| 
 | inlinevirtualinherited | 
Finalization method.
This function performs both the symbolic and numeric finalization, i.e. it simply performs
this->done_numeric(); this->done_symbolic();
Definition at line 283 of file base.hpp.
References FEAT::Solver::SolverBase< Vector_ >::done_numeric(), and FEAT::Solver::SolverBase< Vector_ >::done_symbolic().
| 
 | inlinevirtualinherited | 
Numeric finalization method.
This method is called to release any data allocated in the numeric initialization step.
Reimplemented in FEAT::Solver::BFBT< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >, FEAT::Solver::BFBT< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >, FEAT::Solver::ConvertPrecond< VectorOuter_, VectorInner_ >, FEAT::Solver::ConvertPrecond< Global::Vector< LocalVectorOuter_, MirrorOuter_ >, Global::Vector< LocalVectorInner_, MirrorInner_ > >, FEAT::Solver::CUDSS, FEAT::Solver::DirectStokesSolver< LAFEM::SaddlePointMatrix< MatrixA_, MatrixB_, MatrixD_ >, LAFEM::TupleFilter< FilterV_, FilterP_ > >, FEAT::Solver::DirectStokesSolver< Global::Matrix< LocalMatrix_, Mirror_, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > >, FEAT::Solver::ParaSailsPrecond< Matrix_, Filter_ >, FEAT::Solver::EuclidPrecond< Matrix_, Filter_ >, FEAT::Solver::BoomerAMG< Matrix_, Filter_ >, FEAT::Solver::PreconditionedIterativeSolver< Vector_ >, FEAT::Solver::PreconditionedIterativeSolver< Matrix_::VectorTypeR >, FEAT::Solver::PreconditionedIterativeSolver< Functional_::VectorTypeR >, FEAT::Solver::MKLDSS, FEAT::Solver::MultiGrid< SystemMatrix_, SystemFilter_, TransferOperator_ >, FEAT::Solver::PCGNR< Matrix_, Filter_ >, FEAT::Solver::SchwarzPrecond< Global::Vector< LocalVector_, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > >, FEAT::Solver::Umfpack, FEAT::Solver::UmfpackMean, FEAT::Solver::SaddleUmfpackMean< DT_, IT_, dim_ >, FEAT::Solver::GenericUmfpack< Matrix_ >, FEAT::Solver::UzawaPrecond< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >, and FEAT::Solver::UzawaPrecond< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >.
Definition at line 246 of file base.hpp.
Referenced by FEAT::Solver::SolverBase< Vector_ >::done(), FEAT::Solver::BFBT< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >::done_numeric(), FEAT::Solver::BFBT< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >::done_numeric(), FEAT::Solver::ConvertPrecond< VectorOuter_, VectorInner_ >::done_numeric(), FEAT::Solver::ConvertPrecond< Global::Vector< LocalVectorOuter_, MirrorOuter_ >, Global::Vector< LocalVectorInner_, MirrorInner_ > >::done_numeric(), FEAT::Solver::ParaSailsPrecond< Matrix_, Filter_ >::done_numeric(), FEAT::Solver::PreconditionedIterativeSolver< Vector_ >::done_numeric(), FEAT::Solver::MultiGrid< SystemMatrix_, SystemFilter_, TransferOperator_ >::done_numeric(), FEAT::Solver::PCGNR< Matrix_, Filter_ >::done_numeric(), FEAT::Solver::SaddleUmfpackMean< DT_, IT_, dim_ >::done_numeric(), FEAT::Solver::UzawaPrecond< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >::done_numeric(), and FEAT::Solver::UzawaPrecond< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >::done_numeric().
| 
 | inlineoverridevirtualinherited | 
Reimplemented from FEAT::Solver::SolverBase< Vector_ >.
Definition at line 286 of file linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_vec_grad, FEAT::Solver::Linesearch< Functional_, Filter_ >::_vec_initial_sol, FEAT::Solver::Linesearch< Functional_, Filter_ >::_vec_pn, FEAT::Solver::Linesearch< Functional_, Filter_ >::_vec_tmp, and FEAT::Solver::SolverBase< Vector_ >::done_symbolic().
| 
 | inlinevirtualinherited | 
Forces the calculation of defect norms in every iteration.
| [in] | force | Specifies whether defect norm computation is to be enforced in every iteration | 
Definition at line 490 of file iterative.hpp.
| 
 | inlineinherited | 
Returns the final defect.
Definition at line 570 of file iterative.hpp.
| 
 | inlineinherited | 
Returns the initial defect.
Definition at line 564 of file iterative.hpp.
| 
 | inlineinherited | 
Sets the initial gradient from a defect vector.
| [in] | vec_def | The initial defect vector. | 
This is handy because the linesearch gets called from another solver that in general already evaluated the functional gradient.
Definition at line 378 of file linesearch.hpp.
| 
 | inlineinherited | 
Returns the absolute divergence.
Definition at line 419 of file iterative.hpp.
| 
 | inlineinherited | 
Returns the relative divergence.
Definition at line 413 of file iterative.hpp.
| 
 | inlineinherited | 
Gets the functional value of the last iteration.
Definition at line 344 of file linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_fval_min.
| 
 | inlineinherited | 
Gets the initial solution the linesearch started with.
This is useful for rejecting steps that are too small in the calling solver, like NLCG or NLSD.
Definition at line 404 of file linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_vec_initial_sol.
| 
 | inlineinherited | 
Returns the maximum number of iterations.
Definition at line 474 of file iterative.hpp.
| 
 | inlineinherited | 
Returns the minimal number of iterations.
Definition at line 468 of file iterative.hpp.
| 
 | inlineinherited | 
Returns the minimum stagnation iteration count.
Definition at line 443 of file iterative.hpp.
| 
 | inlineinherited | 
Returns number of performed iterations.
Definition at line 462 of file iterative.hpp.
| 
 | inlineinherited | 
Returns the plot name of the solver.
Definition at line 523 of file iterative.hpp.
| 
 | inlineoverridevirtual | 
Get the relative update of the solver application.
The linesearch updates the solution according to
\[ x \mapsto x + \alpha d, \]
so the relative update is
\[ \hat{\alpha} = | \alpha | \frac{\| d \|_2}{ \| x \|_2}. \]
Used for determining if the linesearch stagnated without updating the solution in a significant way. As this base class normalizes \( d \) in _startup(), it just return \( \alpha \). Derived classes NOT performing this normalization must overwrite this.
Reimplemented from FEAT::Solver::Linesearch< Functional_, Filter_ >.
Definition at line 114 of file fixed_step_linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_norm_dir, and FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::_step_length.
| 
 | inlineinherited | 
Returns the stagnation rate.
Definition at line 431 of file iterative.hpp.
| 
 | inlineinherited | 
Returns the status.
Definition at line 576 of file iterative.hpp.
| 
 | inlineoverridevirtualinherited | 
Returns a summary string.
Reimplemented from FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >.
Definition at line 213 of file linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_alpha_min, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_def_cur, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::_def_init, FEAT::Solver::Linesearch< Functional_, Filter_ >::_functional, FEAT::Solver::Linesearch< Functional_, Filter_ >::_fval_0, FEAT::Solver::Linesearch< Functional_, Filter_ >::_fval_min, FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_num_iter(), FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_plot_name(), FEAT::Solver::IterativeSolver< Functional_::VectorTypeR >::get_status(), FEAT::stringify(), and FEAT::stringify_fp_sci().
| 
 | inlineinherited | 
Returns the absolute tolerance.
Definition at line 389 of file iterative.hpp.
| 
 | inlineinherited | 
Returns the lower absolute tolerance.
Definition at line 395 of file iterative.hpp.
| 
 | inlineinherited | 
Returns the relative tolerance.
Definition at line 383 of file iterative.hpp.
| 
 | inlinevirtualinherited | 
Initialization method.
This function performs both the symbolic and numeric initialization, i.e. it simply performs
this->init_symbolic(); this->init_numeric();
Definition at line 268 of file base.hpp.
References FEAT::Solver::SolverBase< Vector_ >::init_numeric(), and FEAT::Solver::SolverBase< Vector_ >::init_symbolic().
| 
 | inlinevirtualinherited | 
Numeric initialization method.
This method is called to perform numeric initialization of the solver.
Before this function can be called, the symbolic initialization must be performed. 
Reimplemented in FEAT::Solver::AmaVanka< Matrix_, Filter_ >, FEAT::Solver::BFBT< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >, FEAT::Solver::BFBT< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >, FEAT::Solver::Chebyshev< Matrix_, Filter_ >, FEAT::Solver::ConvertPrecond< VectorOuter_, VectorInner_ >, FEAT::Solver::ConvertPrecond< Global::Vector< LocalVectorOuter_, MirrorOuter_ >, Global::Vector< LocalVectorInner_, MirrorInner_ > >, FEAT::Solver::CUDSS, FEAT::Solver::DirectStokesSolver< LAFEM::SaddlePointMatrix< MatrixA_, MatrixB_, MatrixD_ >, LAFEM::TupleFilter< FilterV_, FilterP_ > >, FEAT::Solver::DirectStokesSolver< Global::Matrix< LocalMatrix_, Mirror_, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > >, FEAT::Solver::HypreSolverBase< Matrix_, Filter_, SolverBase_ >, FEAT::Solver::ParaSailsPrecond< Matrix_, Filter_ >, FEAT::Solver::EuclidPrecond< Matrix_, Filter_ >, FEAT::Solver::BoomerAMG< Matrix_, Filter_ >, FEAT::Solver::ILUPrecond< Matrix_, Filter_ >, FEAT::Solver::PreconditionedIterativeSolver< Vector_ >, FEAT::Solver::PreconditionedIterativeSolver< Matrix_::VectorTypeR >, FEAT::Solver::PreconditionedIterativeSolver< Functional_::VectorTypeR >, FEAT::Solver::JacobiPrecond< Matrix_, Filter_ >, FEAT::Solver::MatrixPrecond< Matrix_, Filter_ >, FEAT::Solver::MKLDSS, FEAT::Solver::MultiGrid< SystemMatrix_, SystemFilter_, TransferOperator_ >, FEAT::Solver::NonlinearOperatorPrecondWrapper< NonlinearOperator_ >, FEAT::Solver::PCGNR< Matrix_, Filter_ >, FEAT::Solver::PCGNRILU< Matrix_, Filter_ >, FEAT::Solver::PolynomialPrecond< Matrix_, Filter_ >, FEAT::Solver::SchwarzPrecond< Global::Vector< LocalVector_, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > >, FEAT::Solver::SuperLU< Matrix_, Filter_ >, FEAT::Solver::Umfpack, FEAT::Solver::UmfpackMean, FEAT::Solver::SaddleUmfpackMean< DT_, IT_, dim_ >, FEAT::Solver::GenericUmfpack< Matrix_ >, FEAT::Solver::UzawaPrecond< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >, FEAT::Solver::UzawaPrecond< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >, FEAT::Solver::Vanka< LAFEM::SaddlePointMatrix< MatrixA_, MatrixB_, MatrixD_ >, Filter_ >, and FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >.
Definition at line 237 of file base.hpp.
Referenced by FEAT::Solver::SolverBase< Vector_ >::init(), FEAT::Solver::BFBT< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >::init_numeric(), FEAT::Solver::BFBT< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >::init_numeric(), FEAT::Solver::Chebyshev< Matrix_, Filter_ >::init_numeric(), FEAT::Solver::ConvertPrecond< VectorOuter_, VectorInner_ >::init_numeric(), FEAT::Solver::ConvertPrecond< Global::Vector< LocalVectorOuter_, MirrorOuter_ >, Global::Vector< LocalVectorInner_, MirrorInner_ > >::init_numeric(), FEAT::Solver::HypreSolverBase< Matrix_, Filter_, SolverBase_ >::init_numeric(), FEAT::Solver::PreconditionedIterativeSolver< Vector_ >::init_numeric(), FEAT::Solver::MultiGrid< SystemMatrix_, SystemFilter_, TransferOperator_ >::init_numeric(), FEAT::Solver::PCGNR< Matrix_, Filter_ >::init_numeric(), FEAT::Solver::PCGNRILU< Matrix_, Filter_ >::init_numeric(), FEAT::Solver::SuperLU< Matrix_, Filter_ >::init_numeric(), FEAT::Solver::SaddleUmfpackMean< DT_, IT_, dim_ >::init_numeric(), FEAT::Solver::UzawaPrecond< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >::init_numeric(), FEAT::Solver::UzawaPrecond< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >::init_numeric(), and FEAT::Solver::VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ >::init_numeric().
| 
 | inlineoverridevirtualinherited | 
Reimplemented from FEAT::Solver::SolverBase< Vector_ >.
Definition at line 275 of file linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_vec_grad, FEAT::Solver::Linesearch< Functional_, Filter_ >::_vec_initial_sol, FEAT::Solver::Linesearch< Functional_, Filter_ >::_vec_pn, FEAT::Solver::Linesearch< Functional_, Filter_ >::_vec_tmp, and FEAT::Solver::SolverBase< Vector_ >::init_symbolic().
| 
 | inlineinherited | 
checks for convergence
true, if converged, else false Definition at line 533 of file iterative.hpp.
| 
 | inlineinherited | 
checks for convergence
| [in] | def_cur | The defect norm that is to be analyzed | 
true, if converged, else false Definition at line 546 of file iterative.hpp.
| 
 | inlineinherited | 
checks for divergence
Definition at line 552 of file iterative.hpp.
| 
 | inlineinherited | 
checks for divergence
Definition at line 558 of file iterative.hpp.
| 
 | inlineoverridevirtual | 
Returns a descriptive string.
Implements FEAT::Solver::SolverBase< Vector_ >.
Definition at line 108 of file fixed_step_linesearch.hpp.
Referenced by FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::FixedStepLinesearch().
| 
 | inlinevirtualinherited | 
Plot a summary of the last solver run.
Definition at line 627 of file iterative.hpp.
| 
 | inlinevirtualinherited | 
Resets various member variables in case the solver is reused.
Reimplemented in FEAT::Solver::MQCLinesearch< Functional_, Filter_ >, and FEAT::Solver::SecantLinesearch< Functional_, Filter_ >.
Definition at line 299 of file linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_alpha_0, FEAT::Solver::Linesearch< Functional_, Filter_ >::_alpha_min, FEAT::Solver::Linesearch< Functional_, Filter_ >::_delta_0, FEAT::Solver::Linesearch< Functional_, Filter_ >::_fval_0, FEAT::Solver::Linesearch< Functional_, Filter_ >::_fval_min, FEAT::Solver::Linesearch< Functional_, Filter_ >::_norm_dir, FEAT::Solver::Linesearch< Functional_, Filter_ >::_norm_sol, FEAT::Solver::Linesearch< Functional_, Filter_ >::_trim_threshold, and FEAT::Solver::Linesearch< Functional_, Filter_ >::iterates.
Referenced by FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::reset(), and FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::reset().
| 
 | inlineinherited | 
Determines if search direction scaling is to be used.
Internally, the search direction vector gets normalized ( \( \| p \|_2 = 1 \)) for numerical stablility. Some line searches have a heuristic for choosing the initial step length \( \alpha_0 \), which can use \( \| p \|_2 \) if _dir_scaling is set to true. This is useful when using a preconditioner (e.g. Newton). 
Definition at line 269 of file linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_dir_scaling.
| 
 | inlineinherited | 
Sets the absolute divergence for the solver.
Definition at line 407 of file iterative.hpp.
| 
 | inlineinherited | 
Sets the relative divergence for the solver.
Definition at line 401 of file iterative.hpp.
| 
 | inlineinherited | 
Gets a defect vector from the final gradient.
| [out] | vec_def | The final defect vector. | 
This is handy because the other solver can use the gradient of the new solution without re-calculating it.
Definition at line 392 of file linesearch.hpp.
| 
 | inlineinherited | 
Sets the intitial functional value.
| [in] | f0 | The initial functional value. | 
This is handy because the linesearch gets called from another solver that in general already evaluated the functional.
Definition at line 359 of file linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_fval_0, FEAT::Solver::Linesearch< Functional_, Filter_ >::_trim_threshold, and FEAT::Math::abs().
| 
 | inlineinherited | 
Sets the maximum iteration count for the solver.
Definition at line 455 of file iterative.hpp.
| 
 | inlineinherited | 
Sets the minimum iteration count for the solver.
Definition at line 449 of file iterative.hpp.
| 
 | inlineinherited | 
Sets the minimum stagnate iteration count for the solver.
Definition at line 437 of file iterative.hpp.
| 
 | inlineinherited | 
Sets the interval between two plot outputs, if any.
| [in] | plot_interval | The desired interval of iteration plots | 
Definition at line 511 of file iterative.hpp.
| 
 | inlineinherited | 
Sets the plot mode of the solver.
| [in] | plot_mode | The desired plot mode | 
Definition at line 501 of file iterative.hpp.
| 
 | inlineinherited | 
Sets the plot name of the solver.
Definition at line 517 of file iterative.hpp.
| 
 | inlineinherited | 
Sets the stagnation rate for the solver.
Definition at line 425 of file iterative.hpp.
| 
 | inlinevirtual | 
Sets the step length.
Definition at line 122 of file fixed_step_linesearch.hpp.
References FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::_step_length, and XASSERT.
Referenced by FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::FixedStepLinesearch().
| 
 | inlineinherited | 
Sets the absolute tolerance for the solver.
Definition at line 371 of file iterative.hpp.
| 
 | inlineinherited | 
Sets the lower absolute tolerance for the solver.
Definition at line 377 of file iterative.hpp.
| 
 | inlineinherited | 
Sets the tolerance for the sufficient decrease in curvature.
Definition at line 233 of file linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_tol_curvature, and XASSERT.
Referenced by FEAT::Solver::Linesearch< Functional_, Filter_ >::Linesearch().
| 
 | inlineinherited | 
Sets the tolerance for the sufficient decrease in functional value.
Definition at line 243 of file linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_tol_decrease, and XASSERT.
Referenced by FEAT::Solver::Linesearch< Functional_, Filter_ >::Linesearch().
| 
 | inlineinherited | 
Sets the relative tolerance for the solver.
Definition at line 365 of file iterative.hpp.
| 
 | inlineinherited | 
Sets the step length tolerance.
Definition at line 254 of file linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_tol_step, and XASSERT.
Referenced by FEAT::Solver::Linesearch< Functional_, Filter_ >::Linesearch().
| 
 | inlinevirtualinherited | 
Trims the function value and gradient according to some threshold.
| [in,out] | func | Function value. | 
This sets
\[ trim(f, \nabla f) = \begin{cases} (f, \nabla f), & f \leq f_t \\ (f_t, 0 ), & f > f_t \end{cases}, \]
where \( f_t : = 10*(|f_0|+1) \).
This is useful and even mandatory when \( f \) has singularities, so that if the linesearch steps into a singularity the very high function and gradient values do not pollute the solution process, since they get rejected by the linesearch anyway but might be used in computations.
Definition at line 430 of file linesearch.hpp.
References FEAT::Solver::Linesearch< Functional_, Filter_ >::_trim_threshold.
Referenced by FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::_apply_intern(), and FEAT::Solver::NewtonRaphsonLinesearch< Functional_, Filter_ >::_apply_intern().
| 
 | protectedinherited | 
Initial line search parameter.
Definition at line 69 of file linesearch.hpp.
Referenced by FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::SecantLinesearch(), FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::Linesearch< Functional_, Filter_ >::_startup(), FEAT::Solver::Linesearch< Functional_, Filter_ >::reset(), and FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::reset().
| 
 | protectedinherited | 
Line search parameter.
Definition at line 71 of file linesearch.hpp.
Referenced by FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::FixedStepLinesearch(), FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::NewtonRaphsonLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::Linesearch< Functional_, Filter_ >::get_summary(), and FEAT::Solver::Linesearch< Functional_, Filter_ >::reset().
| 
 | protectedinherited | 
Communicator of the solver.
Definition at line 209 of file iterative.hpp.
| 
 | protectedinherited | 
current defect
Definition at line 239 of file iterative.hpp.
| 
 | protectedinherited | 
initial defect
Definition at line 237 of file iterative.hpp.
| 
 | protectedinherited | 
previous iteration defect
Definition at line 241 of file iterative.hpp.
| 
 | protectedinherited | 
Initial <vec_dir, vec_grad>
Definition at line 73 of file linesearch.hpp.
Referenced by FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::Linesearch< Functional_, Filter_ >::_check_convergence(), FEAT::Solver::Linesearch< Functional_, Filter_ >::_startup(), and FEAT::Solver::Linesearch< Functional_, Filter_ >::reset().
| 
 | protectedinherited | 
Use the search direction norm for step scaling? This can be important if the search direction was preconditioned (e.g. the Newton direction)
Definition at line 87 of file linesearch.hpp.
Referenced by FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::_apply_intern(), and FEAT::Solver::Linesearch< Functional_, Filter_ >::set_dir_scaling().
| 
 | protectedinherited | 
absolute divergence parameter
Definition at line 223 of file iterative.hpp.
| 
 | protectedinherited | 
relative divergence parameter
Definition at line 221 of file iterative.hpp.
| 
 | protectedinherited | 
The filter to be applied to the functional's gradient.
Definition at line 50 of file linesearch.hpp.
Referenced by FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::NewtonRaphsonLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::apply(), FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::apply(), FEAT::Solver::NewtonRaphsonLinesearch< Functional_, Filter_ >::apply(), FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::apply(), FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::correct(), FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::correct(), FEAT::Solver::NewtonRaphsonLinesearch< Functional_, Filter_ >::correct(), and FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::correct().
| 
 | protectedinherited | 
whether skipping of defect computation is allowed or not
Definition at line 249 of file iterative.hpp.
| 
 | protectedinherited | 
The (nonlinear) functional.
Definition at line 48 of file linesearch.hpp.
Referenced by FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::NewtonRaphsonLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::apply(), FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::apply(), FEAT::Solver::NewtonRaphsonLinesearch< Functional_, Filter_ >::apply(), FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::apply(), FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::correct(), FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::correct(), FEAT::Solver::NewtonRaphsonLinesearch< Functional_, Filter_ >::correct(), FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::correct(), and FEAT::Solver::Linesearch< Functional_, Filter_ >::get_summary().
| 
 | protectedinherited | 
Initial functional value.
Definition at line 64 of file linesearch.hpp.
Referenced by FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::Linesearch< Functional_, Filter_ >::_check_convergence(), FEAT::Solver::Linesearch< Functional_, Filter_ >::_startup(), FEAT::Solver::Linesearch< Functional_, Filter_ >::get_summary(), FEAT::Solver::Linesearch< Functional_, Filter_ >::reset(), and FEAT::Solver::Linesearch< Functional_, Filter_ >::set_initial_fval().
| 
 | protectedinherited | 
Functional functional value.
Definition at line 62 of file linesearch.hpp.
Referenced by FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::NewtonRaphsonLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::correct(), FEAT::Solver::Linesearch< Functional_, Filter_ >::get_final_fval(), FEAT::Solver::Linesearch< Functional_, Filter_ >::get_summary(), and FEAT::Solver::Linesearch< Functional_, Filter_ >::reset().
| 
 | protectedinherited | 
iteration count digits for plotting
Definition at line 243 of file iterative.hpp.
| 
 | protectedinherited | 
maximum number of iterations
Definition at line 229 of file iterative.hpp.
| 
 | protectedinherited | 
minimum number of iterations
Definition at line 227 of file iterative.hpp.
| 
 | protectedinherited | 
minimum number of stagnation iterations
Definition at line 233 of file iterative.hpp.
| 
 | protectedinherited | 
The 2-norm of the search direction.
Definition at line 75 of file linesearch.hpp.
Referenced by FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::apply(), FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::correct(), FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::get_rel_update(), and FEAT::Solver::Linesearch< Functional_, Filter_ >::reset().
| 
 | protectedinherited | 
The 2-norm of the iterate.
Definition at line 77 of file linesearch.hpp.
Referenced by FEAT::Solver::Linesearch< Functional_, Filter_ >::reset().
| 
 | protectedinherited | 
number of performed iterations
Definition at line 231 of file iterative.hpp.
| 
 | protectedinherited | 
number of consecutive stagnated iterations
Definition at line 235 of file iterative.hpp.
| 
 | protectedinherited | 
plot output interval
Definition at line 247 of file iterative.hpp.
| 
 | protectedinherited | 
whether to plot something
Definition at line 245 of file iterative.hpp.
| 
 | protectedinherited | 
name of the solver in plots
Definition at line 211 of file iterative.hpp.
| 
 | protectedinherited | 
stagnation rate
Definition at line 225 of file iterative.hpp.
| 
 | protectedinherited | 
current status of the solver
Definition at line 213 of file iterative.hpp.
| 
 | private | 
The length of the step.
Definition at line 36 of file fixed_step_linesearch.hpp.
Referenced by FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::FixedStepLinesearch(), FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::apply(), FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::correct(), FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::get_rel_update(), and FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::set_step_length().
| 
 | protectedinherited | 
absolute tolerance parameter
Definition at line 217 of file iterative.hpp.
| 
 | protectedinherited | 
absolute low tolerance parameter
Definition at line 219 of file iterative.hpp.
| 
 | protectedinherited | 
Tolerance for sufficient decrease in the norm of the gradient (Wolfe conditions)
Definition at line 80 of file linesearch.hpp.
Referenced by FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::Linesearch< Functional_, Filter_ >::_check_convergence(), and FEAT::Solver::Linesearch< Functional_, Filter_ >::set_tol_curvature().
| 
 | protectedinherited | 
Tolerance for sufficient decrease in the functional value (Wolfe conditions)
Definition at line 82 of file linesearch.hpp.
Referenced by FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::Linesearch< Functional_, Filter_ >::_check_convergence(), and FEAT::Solver::Linesearch< Functional_, Filter_ >::set_tol_decrease().
| 
 | protectedinherited | 
relative tolerance parameter
Definition at line 215 of file iterative.hpp.
| 
 | protectedinherited | 
Tolerance for the update step.
Definition at line 84 of file linesearch.hpp.
Referenced by FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::_apply_intern(), and FEAT::Solver::Linesearch< Functional_, Filter_ >::set_tol_step().
| 
 | protectedinherited | 
Threshold for trimming function value and gradient.
Definition at line 66 of file linesearch.hpp.
Referenced by FEAT::Solver::Linesearch< Functional_, Filter_ >::reset(), FEAT::Solver::Linesearch< Functional_, Filter_ >::set_initial_fval(), and FEAT::Solver::Linesearch< Functional_, Filter_ >::trim_func_grad().
| 
 | protectedinherited | 
Gradient vector.
Definition at line 53 of file linesearch.hpp.
Referenced by FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::NewtonRaphsonLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::FixedStepLinesearch< Functional_, Filter_ >::correct(), FEAT::Solver::Linesearch< Functional_, Filter_ >::done_symbolic(), and FEAT::Solver::Linesearch< Functional_, Filter_ >::init_symbolic().
| 
 | protectedinherited | 
Initial solution.
Definition at line 55 of file linesearch.hpp.
Referenced by FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::NewtonRaphsonLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::Linesearch< Functional_, Filter_ >::done_symbolic(), FEAT::Solver::Linesearch< Functional_, Filter_ >::get_initial_sol(), and FEAT::Solver::Linesearch< Functional_, Filter_ >::init_symbolic().
| 
 | protectedinherited | 
descend direction vector, normalized for better numerical stability
Definition at line 59 of file linesearch.hpp.
Referenced by FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::NewtonRaphsonLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::SecantLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::Linesearch< Functional_, Filter_ >::done_symbolic(), and FEAT::Solver::Linesearch< Functional_, Filter_ >::init_symbolic().
| 
 | protectedinherited | 
temporary vector
Definition at line 57 of file linesearch.hpp.
Referenced by FEAT::Solver::MQCLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::NewtonRaphsonLinesearch< Functional_, Filter_ >::_apply_intern(), FEAT::Solver::Linesearch< Functional_, Filter_ >::done_symbolic(), and FEAT::Solver::Linesearch< Functional_, Filter_ >::init_symbolic().
| 
 | inherited | 
For debugging purposes, it is possible to save all iterates to this.
Definition at line 91 of file linesearch.hpp.
Referenced by FEAT::Solver::Linesearch< Functional_, Filter_ >::Linesearch(), FEAT::Solver::Linesearch< Functional_, Filter_ >::~Linesearch(), and FEAT::Solver::Linesearch< Functional_, Filter_ >::reset().