Describes a routine capable of computing the Jacobian matrix of M functions of N unknowns.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in), | dimension(:) | :: | x |
An N-element array containing the independent variables. |
|
| real(kind=real64), | intent(out), | dimension(:,:) | :: | jac |
An M-by-N matrix where the Jacobian will be written. |
Describes the interface of a nonlinear equation solver.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(equation_solver), | intent(inout) | :: | this |
The equation_solver-based object. |
||
| class(vecfcn_helper), | intent(in) | :: | fcn |
The vecfcn_helper object containing the equations to solve. |
||
| real(kind=real64), | intent(inout), | dimension(:) | :: | 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. |
|
| real(kind=real64), | intent(out), | dimension(:) | :: | fvec |
An M-element array that, on output, will contain the values of each equation as evaluated at the variable values given in x. |
|
| type(iteration_behavior), | optional | :: | ib |
An optional output, that if provided, allows the caller to obtain iteration performance statistics. |
||
| class(errors), | intent(inout), | optional, | target | :: | err |
An error handling object. |
Describes an M-element vector-valued function of N-variables.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in), | dimension(:) | :: | x |
An N-element array containing the independent variables. |
|
| real(kind=real64), | intent(out), | dimension(:) | :: | f |
An M-element array that, on output, contains the values of the M functions. |
A base class for various solvers of nonlinear systems of equations.
| procedure , public :: get_fcn_tolerance => es_get_fcn_tol Function | |
| procedure , public :: get_gradient_tolerance => es_get_grad_tol Function | |
| procedure , public :: get_max_fcn_evals => es_get_max_eval Function | |
| procedure , public :: get_print_status => es_get_print_status Function | |
| procedure , public :: get_var_tolerance => es_get_var_tol Function | |
| procedure , public :: set_fcn_tolerance => es_set_fcn_tol Subroutine | |
| procedure , public :: set_gradient_tolerance => es_set_grad_tol 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_var_tolerance => es_set_var_tol Subroutine | |
| procedure (nonlin_solver) , public , pass :: solve |
Defines a type capable of encapsulating a system of nonlinear equations of the form: F(X) = 0. This type is used to establish the system of equations to solve, and provides a means for computing the Jacobian matrix for the system of equations, and any other ancillary operations that may be needed by the solver.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=int32), | public | :: | m_nvar | = | 0 |
The number of variables in m_fcn. |
| procedure , public :: fcn => vfh_fcn Subroutine | |
| procedure , public :: get_equation_count => vfh_get_nfcn Function | |
| procedure , public :: get_variable_count => vfh_get_nvar Function | |
| procedure , public :: is_fcn_defined => vfh_is_fcn_defined Function | |
| procedure , public :: is_jacobian_defined => vfh_is_jac_defined Function | |
| procedure , public :: jacobian => vfh_jac_fcn Subroutine | |
| procedure , public :: set_fcn => vfh_set_fcn Subroutine | |
| procedure , public :: set_jacobian => vfh_set_jac Subroutine |