nonlin 1.5.2
A library that provides routines to compute the solutions to systems of nonlinear equations.
|
Defines a Newton solver. More...
Public Member Functions | |
procedure, public | solve ns_solve |
Applies Newton's method in conjunction with a backtracking type line search to solve N equations of N unknowns. | |
Public Member Functions inherited from nonlin_solve::line_search_solver | |
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. | |
Additional Inherited Members | |
Public Attributes inherited from nonlin_solve::line_search_solver | |
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. | |
Defines a Newton solver.
Definition at line 287 of file nonlin_solve.f90.
|
virtual |
Applies Newton's method in conjunction with a backtracking type line search to solve N equations of N unknowns.
[in,out] | this | The equation_solver-based object. |
[in] | fcn | The vecfcn_helper object containing the equations to solve. |
[in,out] | x | On input, an N-element array containing an initial estimate to the solution. On output, the updated solution estimate. N is the number of variables. |
[out] | fvec | An N-element array that, on output, will contain the values of each equation as evaluated at the variable values given in x . |
[out] | ib | An optional output, that if provided, allows the caller to obtain iteration performance statistics. |
[out] | err | An optional errors-based object that if provided can be used to retrieve information relating to any errors encountered during execution. If not provided, a default implementation of the errors class is used internally to provide error handling. Possible errors and warning messages that may be encountered are as follows.
|
Implements nonlin_core::equation_solver.
Definition at line 378 of file nonlin_solve.f90.