nonlin 1.5.2
A library that provides routines to compute the solutions to systems of nonlinear equations.
Loading...
Searching...
No Matches
nonlin_solve::line_search_solver Type Reference

A class describing nonlinear solvers that use a line search algorithm to improve convergence behavior. More...

Inheritance diagram for nonlin_solve::line_search_solver:
nonlin_core::equation_solver nonlin_solve::newton_solver nonlin_solve::quasi_newton_solver

Public Member Functions

procedure, public get_line_search lss_get_line_search
 Gets the line search module.
 
procedure, public set_line_search lss_set_line_search
 Sets the line search module.
 
procedure, public set_default_line_search lss_set_default
 Establishes a default line_search object for the line search module.
 
procedure, public is_line_search_defined lss_is_line_search_defined
 Tests to see if a line search module is defined.
 
procedure, public get_use_line_search lss_get_use_search
 Gets a value determining if a line-search should be employed.
 
procedure, public set_use_line_search lss_set_use_search
 Sets a value determining if a line-search should be employed.
 
- Public Member Functions inherited from nonlin_core::equation_solver
procedure, public get_max_fcn_evals es_get_max_eval
 Gets the maximum number of function evaluations allowed during a single solve.
 
procedure, public set_max_fcn_evals es_set_max_eval
 Sets the maximum number of function evaluations allowed during a single solve.
 
procedure, public get_fcn_tolerance es_get_fcn_tol
 Gets the convergence on function value tolerance.
 
procedure, public set_fcn_tolerance es_set_fcn_tol
 Sets the convergence on function value tolerance.
 
procedure, public get_var_tolerance es_get_var_tol
 Gets the convergence on change in variable tolerance.
 
procedure, public set_var_tolerance es_set_var_tol
 Sets the convergence on change in variable tolerance.
 
procedure, public get_gradient_tolerance es_get_grad_tol
 Gets the convergence on slope of the gradient vector tolerance.
 
procedure, public set_gradient_tolerance es_set_grad_tol
 Sets the convergence on slope of the gradient vector tolerance.
 
procedure, public get_print_status es_get_print_status
 Gets a logical value determining if iteration status should be printed.
 
procedure, public set_print_status es_set_print_status
 Sets a logical value determining if iteration status should be printed.
 
procedure(nonlin_solver), deferred, pass, public solve nonlin_solver
 Solves the system of equations.
 

Public Attributes

logical m_uselinesearch = .true.
 Set to true if a line search should be used regardless of the status of m_lineSearch.
 
- Public Attributes inherited from nonlin_core::equation_solver
real(real64) m_fcntol = 1.0d-8
 The convergence criteria on function values.
 
real(real64) m_xtol = 1.0d-12
 The convergence criteria on change in variable values.
 
real(real64) m_gtol = 1.0d-12
 The convergence criteria for the slope of the gradient vector.
 
logical m_printstatus = .false.
 Set to true to print iteration status; else, false.
 

Private Attributes

class(line_search), allocatable m_linesearch
 The line search module.
 

Detailed Description

A class describing nonlinear solvers that use a line search algorithm to improve convergence behavior.

Definition at line 31 of file nonlin_solve.f90.

Member Function/Subroutine Documentation

◆ get_line_search()

procedure, public nonlin_solve::line_search_solver::get_line_search

Gets the line search module.

Syntax
subroutine get_line_search(class(line_search_solver) this, class(line_search) ls)
Parameters
[in]thisThe line_search_solver object.
[out]lsThe line_search object.

Definition at line 48 of file nonlin_solve.f90.

◆ get_use_line_search()

procedure, public nonlin_solve::line_search_solver::get_use_line_search

Gets a value determining if a line-search should be employed.

Syntax
pure logical function get_use_line_search(class(line_search_solver) this)
Parameters
[in]thisThe line_search_solver object.
Returns
Returns true if a line search should be used; else, false.

Definition at line 89 of file nonlin_solve.f90.

◆ is_line_search_defined()

procedure, public nonlin_solve::line_search_solver::is_line_search_defined

Tests to see if a line search module is defined.

Syntax
pure logical function is_line_search_defined(class(line_search_solver) this)
Parameters
[in]thisThe line_search_solver object.
Returns
Returns true if a module is defined; else, false.

Definition at line 78 of file nonlin_solve.f90.

◆ set_default_line_search()

procedure, public nonlin_solve::line_search_solver::set_default_line_search

Establishes a default line_search object for the line search module.

Syntax
subroutine set_default_line_search(class(line_search_solver) this)
Parameters
[in,out]thisThe line_search_solver object.

Definition at line 68 of file nonlin_solve.f90.

◆ set_line_search()

procedure, public nonlin_solve::line_search_solver::set_line_search

Sets the line search module.

Syntax
subroutine set_line_search(class(line_search_solver) this, class(line_search) ls)
Parameters
[in,out]thisThe line_search_solver object.
[in]lsThe line_search object.

Definition at line 58 of file nonlin_solve.f90.

◆ set_use_line_search()

procedure, public nonlin_solve::line_search_solver::set_use_line_search

Sets a value determining if a line-search should be employed.

Syntax
subroutine set_use_line_search(class(line_search_solver) this, logical x)
Parameters
[in,out]thisThe line_search_solver object.
[in]xSet to true if a line search should be used; else, false.

Definition at line 99 of file nonlin_solve.f90.

Member Data Documentation

◆ m_linesearch

class(line_search), allocatable nonlin_solve::line_search_solver::m_linesearch
private

The line search module.

Definition at line 34 of file nonlin_solve.f90.

◆ m_uselinesearch

logical nonlin_solve::line_search_solver::m_uselinesearch = .true.

Set to true if a line search should be used regardless of the status of m_lineSearch.

Definition at line 37 of file nonlin_solve.f90.


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