nonlin_solve Module



Contents


Derived Types

type, public, extends(equation_solver_1var) ::  brent_solver

Defines a solver based upon Brent's method for solving an equation of one variable without using derivatives.

Type-Bound Procedures

procedure , public :: get_diff_tolerance => es1_get_diff_tol Function
procedure , public :: get_fcn_tolerance => es1_get_fcn_tol Function
procedure , public :: get_max_fcn_evals => es1_get_max_eval Function
procedure , public :: get_print_status => es1_get_print_status Function
procedure , public :: get_var_tolerance => es1_get_var_tol Function
procedure , public :: set_diff_tolerance => es1_set_diff_tol Subroutine
procedure , public :: set_fcn_tolerance => es1_set_fcn_tol Subroutine
procedure , public :: set_max_fcn_evals => es1_set_max_eval Subroutine
procedure , public :: set_print_status => es1_set_print_status Subroutine
procedure , public :: set_var_tolerance => es1_set_var_tol Subroutine
procedure , public :: solve => brent_solve Subroutine

type, public, extends(equation_solver) ::  line_search_solver

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

Type-Bound Procedures

procedure , public :: get_fcn_tolerance => es_get_fcn_tol Function
procedure , public :: get_gradient_tolerance => es_get_grad_tol Function
procedure , public :: get_line_search => lss_get_line_search Subroutine
procedure , public :: get_max_fcn_evals => es_get_max_eval Function
procedure , public :: get_print_status => es_get_print_status Function
procedure , public :: get_use_line_search => lss_get_use_search Function
procedure , public :: get_var_tolerance => es_get_var_tol Function
procedure , public :: is_line_search_defined => lss_is_line_search_defined Function
procedure , public :: set_default_line_search => lss_set_default Subroutine
procedure , public :: set_fcn_tolerance => es_set_fcn_tol Subroutine
procedure , public :: set_gradient_tolerance => es_set_grad_tol Subroutine
procedure , public :: set_line_search => lss_set_line_search Subroutine
procedure , public :: set_max_fcn_evals => es_set_max_eval Subroutine
procedure , public :: set_print_status => es_set_print_status Subroutine
procedure , public :: set_use_line_search => lss_set_use_search Subroutine
procedure , public :: set_var_tolerance => es_set_var_tol Subroutine
procedure (nonlin_solver) , public , pass :: solve

type, public, extends(equation_solver_1var) ::  newton_1var_solver

Defines a solver based upon Newtons's method for solving an equation of one variable. The algorithm uses a bisection method in conjunction with Newton's method in order to keep bounds upon the Newton iterations.

Type-Bound Procedures

procedure , public :: get_diff_tolerance => es1_get_diff_tol Function
procedure , public :: get_fcn_tolerance => es1_get_fcn_tol Function
procedure , public :: get_max_fcn_evals => es1_get_max_eval Function
procedure , public :: get_print_status => es1_get_print_status Function
procedure , public :: get_var_tolerance => es1_get_var_tol Function
procedure , public :: set_diff_tolerance => es1_set_diff_tol Subroutine
procedure , public :: set_fcn_tolerance => es1_set_fcn_tol Subroutine
procedure , public :: set_max_fcn_evals => es1_set_max_eval Subroutine
procedure , public :: set_print_status => es1_set_print_status Subroutine
procedure , public :: set_var_tolerance => es1_set_var_tol Subroutine
procedure , public :: solve => newt1var_solve Subroutine

type, public, extends(line_search_solver) ::  newton_solver

Defines a Newton solver.

Type-Bound Procedures

procedure , public :: get_fcn_tolerance => es_get_fcn_tol Function
procedure , public :: get_gradient_tolerance => es_get_grad_tol Function
procedure , public :: get_line_search => lss_get_line_search Subroutine
procedure , public :: get_max_fcn_evals => es_get_max_eval Function
procedure , public :: get_print_status => es_get_print_status Function
procedure , public :: get_use_line_search => lss_get_use_search Function
procedure , public :: get_var_tolerance => es_get_var_tol Function
procedure , public :: is_line_search_defined => lss_is_line_search_defined Function
procedure , public :: set_default_line_search => lss_set_default Subroutine
procedure , public :: set_fcn_tolerance => es_set_fcn_tol Subroutine
procedure , public :: set_gradient_tolerance => es_set_grad_tol Subroutine
procedure , public :: set_line_search => lss_set_line_search Subroutine
procedure , public :: set_max_fcn_evals => es_set_max_eval Subroutine
procedure , public :: set_print_status => es_set_print_status Subroutine
procedure , public :: set_use_line_search => lss_set_use_search Subroutine
procedure , public :: set_var_tolerance => es_set_var_tol Subroutine
procedure , public :: solve => ns_solve Subroutine

type, public, extends(line_search_solver) ::  quasi_newton_solver

Defines a quasi-Newton type solver based upon Broyden's method.

Type-Bound Procedures

procedure , public :: get_fcn_tolerance => es_get_fcn_tol Function
procedure , public :: get_gradient_tolerance => es_get_grad_tol Function
procedure , public :: get_jacobian_interval => qns_get_jac_interval Function
procedure , public :: get_line_search => lss_get_line_search Subroutine
procedure , public :: get_max_fcn_evals => es_get_max_eval Function
procedure , public :: get_print_status => es_get_print_status Function
procedure , public :: get_use_line_search => lss_get_use_search Function
procedure , public :: get_var_tolerance => es_get_var_tol Function
procedure , public :: is_line_search_defined => lss_is_line_search_defined Function
procedure , public :: set_default_line_search => lss_set_default Subroutine
procedure , public :: set_fcn_tolerance => es_set_fcn_tol Subroutine
procedure , public :: set_gradient_tolerance => es_set_grad_tol Subroutine
procedure , public :: set_jacobian_interval => qns_set_jac_interval Subroutine
procedure , public :: set_line_search => lss_set_line_search Subroutine
procedure , public :: set_max_fcn_evals => es_set_max_eval Subroutine
procedure , public :: set_print_status => es_set_print_status Subroutine
procedure , public :: set_use_line_search => lss_set_use_search Subroutine
procedure , public :: set_var_tolerance => es_set_var_tol Subroutine
procedure , public :: solve => qns_solve Subroutine