Implements the simple Newton-Krylov method for finding roots (fixed points) of a nonlinear vector-valued function , i.e. solutions such that starting from an initial guess via successive solution increments based on local linearization (the Jacobian) of the nonlinear function in the vicinity of the current solution.
Algorthmic Features
where is the residual of the nonlinear function. The new guess for the fixed point is then given by:
where parametrizes the step length. The standard Newton algorithm sets .
Advantages
Limitations
References
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_system_rsp), | intent(inout) | :: | sys |
Dynamical system for which we wish to compute a fixed point |
||
class(abstract_vector_rsp), | intent(inout) | :: | X |
Initial guess for the fixed point, will be overwritten with solution |
||
procedure(abstract_linear_solver_rsp) | :: | solver |
Linear solver to be used to find Newton step |
|||
integer, | intent(out) | :: | info |
Information flag |
||
real(kind=sp), | intent(in), | optional | :: | tolerance | ||
type(newton_sp_opts), | intent(in), | optional | :: | options | ||
class(abstract_opts), | intent(in), | optional | :: | linear_solver_options |
Options for the linear solver |
|
class(abstract_precond_rsp), | intent(in), | optional | :: | preconditioner |
Preconditioner for the linear solver |
|
procedure(abstract_scheduler_sp), | optional | :: | scheduler |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_system_rdp), | intent(inout) | :: | sys |
Dynamical system for which we wish to compute a fixed point |
||
class(abstract_vector_rdp), | intent(inout) | :: | X |
Initial guess for the fixed point, will be overwritten with solution |
||
procedure(abstract_linear_solver_rdp) | :: | solver |
Linear solver to be used to find Newton step |
|||
integer, | intent(out) | :: | info |
Information flag |
||
real(kind=dp), | intent(in), | optional | :: | tolerance | ||
type(newton_dp_opts), | intent(in), | optional | :: | options | ||
class(abstract_opts), | intent(in), | optional | :: | linear_solver_options |
Options for the linear solver |
|
class(abstract_precond_rdp), | intent(in), | optional | :: | preconditioner |
Preconditioner for the linear solver |
|
procedure(abstract_scheduler_dp), | optional | :: | scheduler |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_system_csp), | intent(inout) | :: | sys |
Dynamical system for which we wish to compute a fixed point |
||
class(abstract_vector_csp), | intent(inout) | :: | X |
Initial guess for the fixed point, will be overwritten with solution |
||
procedure(abstract_linear_solver_csp) | :: | solver |
Linear solver to be used to find Newton step |
|||
integer, | intent(out) | :: | info |
Information flag |
||
real(kind=sp), | intent(in), | optional | :: | tolerance | ||
type(newton_sp_opts), | intent(in), | optional | :: | options | ||
class(abstract_opts), | intent(in), | optional | :: | linear_solver_options |
Options for the linear solver |
|
class(abstract_precond_csp), | intent(in), | optional | :: | preconditioner |
Preconditioner for the linear solver |
|
procedure(abstract_scheduler_sp), | optional | :: | scheduler |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_system_cdp), | intent(inout) | :: | sys |
Dynamical system for which we wish to compute a fixed point |
||
class(abstract_vector_cdp), | intent(inout) | :: | X |
Initial guess for the fixed point, will be overwritten with solution |
||
procedure(abstract_linear_solver_cdp) | :: | solver |
Linear solver to be used to find Newton step |
|||
integer, | intent(out) | :: | info |
Information flag |
||
real(kind=dp), | intent(in), | optional | :: | tolerance | ||
type(newton_dp_opts), | intent(in), | optional | :: | options | ||
class(abstract_opts), | intent(in), | optional | :: | linear_solver_options |
Options for the linear solver |
|
class(abstract_precond_cdp), | intent(in), | optional | :: | preconditioner |
Preconditioner for the linear solver |
|
procedure(abstract_scheduler_dp), | optional | :: | scheduler |