This module provides the abstract types necessary to define an algebraic system of nonlinear equations to be solved using the Newton method.
Abstract type for the local linearization of the system around the state X
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
class(abstract_vector_cdp), | public, | allocatable | :: | X |
System state around which the equatons are linearized. |
||
type(lightkrylov_timer), | public | :: | matvec_timer | = | lightkrylov_timer('matvec timer') | ||
type(lightkrylov_timer), | public | :: | rmatvec_timer | = | lightkrylov_timer('rmatvec timer') |
procedure, public, pass(self) :: apply_matvec => apply_matvec_cdp | Wrapper for matvec including the counter increment |
procedure, public, pass(self) :: apply_rmatvec => apply_rmatvec_cdp | Wrapper for rmatvec including the counter increment |
procedure, public, pass(self) :: finalize_timer => finalize_linop_timer | Finalize timers and print complete history_info |
procedure, public, pass(self) :: get_counter | Return matvec/rmatvec counter value |
procedure(abstract_matvec_cdp), public, deferred, pass(self) :: matvec | Procedure to compute the matrix-vector product . |
procedure, public, pass(self) :: print_timer_info | Print current timing data |
procedure, public, pass(self) :: reset_counter | Reset matvec/rmatvec counter |
procedure, public, pass(self) :: reset_timer => reset_linop_timer | Reset current timing data |
procedure(abstract_matvec_cdp), public, deferred, pass(self) :: rmatvec | Procedure to compute the reversed matrix-vector product . |
Abstract type for the local linearization of the system around the state X
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
class(abstract_vector_csp), | public, | allocatable | :: | X |
System state around which the equatons are linearized. |
||
type(lightkrylov_timer), | public | :: | matvec_timer | = | lightkrylov_timer('matvec timer') | ||
type(lightkrylov_timer), | public | :: | rmatvec_timer | = | lightkrylov_timer('rmatvec timer') |
procedure, public, pass(self) :: apply_matvec => apply_matvec_csp | Wrapper for matvec including the counter increment |
procedure, public, pass(self) :: apply_rmatvec => apply_rmatvec_csp | Wrapper for rmatvec including the counter increment |
procedure, public, pass(self) :: finalize_timer => finalize_linop_timer | Finalize timers and print complete history_info |
procedure, public, pass(self) :: get_counter | Return matvec/rmatvec counter value |
procedure(abstract_matvec_csp), public, deferred, pass(self) :: matvec | Procedure to compute the matrix-vector product . |
procedure, public, pass(self) :: print_timer_info | Print current timing data |
procedure, public, pass(self) :: reset_counter | Reset matvec/rmatvec counter |
procedure, public, pass(self) :: reset_timer => reset_linop_timer | Reset current timing data |
procedure(abstract_matvec_csp), public, deferred, pass(self) :: rmatvec | Procedure to compute the reversed matrix-vector product . |
Abstract type for the local linearization of the system around the state X
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
class(abstract_vector_rdp), | public, | allocatable | :: | X |
System state around which the equatons are linearized. |
||
type(lightkrylov_timer), | public | :: | matvec_timer | = | lightkrylov_timer('matvec timer') | ||
type(lightkrylov_timer), | public | :: | rmatvec_timer | = | lightkrylov_timer('rmatvec timer') |
procedure, public, pass(self) :: apply_matvec => apply_matvec_rdp | Wrapper for matvec including the counter increment |
procedure, public, pass(self) :: apply_rmatvec => apply_rmatvec_rdp | Wrapper for rmatvec including the counter increment |
procedure, public, pass(self) :: finalize_timer => finalize_linop_timer | Finalize timers and print complete history_info |
procedure, public, pass(self) :: get_counter | Return matvec/rmatvec counter value |
procedure(abstract_matvec_rdp), public, deferred, pass(self) :: matvec | Procedure to compute the matrix-vector product . |
procedure, public, pass(self) :: print_timer_info | Print current timing data |
procedure, public, pass(self) :: reset_counter | Reset matvec/rmatvec counter |
procedure, public, pass(self) :: reset_timer => reset_linop_timer | Reset current timing data |
procedure(abstract_matvec_rdp), public, deferred, pass(self) :: rmatvec | Procedure to compute the reversed matrix-vector product . |
Abstract type for the local linearization of the system around the state X
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
class(abstract_vector_rsp), | public, | allocatable | :: | X |
System state around which the equatons are linearized. |
||
type(lightkrylov_timer), | public | :: | matvec_timer | = | lightkrylov_timer('matvec timer') | ||
type(lightkrylov_timer), | public | :: | rmatvec_timer | = | lightkrylov_timer('rmatvec timer') |
procedure, public, pass(self) :: apply_matvec => apply_matvec_rsp | Wrapper for matvec including the counter increment |
procedure, public, pass(self) :: apply_rmatvec => apply_rmatvec_rsp | Wrapper for rmatvec including the counter increment |
procedure, public, pass(self) :: finalize_timer => finalize_linop_timer | Finalize timers and print complete history_info |
procedure, public, pass(self) :: get_counter | Return matvec/rmatvec counter value |
procedure(abstract_matvec_rsp), public, deferred, pass(self) :: matvec | Procedure to compute the matrix-vector product . |
procedure, public, pass(self) :: print_timer_info | Print current timing data |
procedure, public, pass(self) :: reset_counter | Reset matvec/rmatvec counter |
procedure, public, pass(self) :: reset_timer => reset_linop_timer | Reset current timing data |
procedure(abstract_matvec_rsp), public, deferred, pass(self) :: rmatvec | Procedure to compute the reversed matrix-vector product . |
procedure, public, pass(self) :: finalize_timer => finalize_eval_timer | Finalize timer and print complete history |
procedure, public, pass(self) :: get_eval_counter | Return eval counter value |
procedure, public, pass(self) :: print_timer_info | Print current timing data |
procedure, public, pass(self) :: reset_eval_counter | Reset eval counter |
procedure, public, pass(self) :: reset_timer => reset_eval_timer | Reset current timing data |
System for Newton fixed-point iteration via the Jacobian
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
class(abstract_jacobian_linop_cdp), | public, | allocatable | :: | jacobian |
System Jacobian . |
procedure, public, pass(self) :: eval => eval_cdp | Wrapper for response including the counter increment |
procedure, public, pass(self) :: finalize_timer => finalize_eval_timer | Finalize timer and print complete history |
procedure, public, pass(self) :: get_eval_counter | Return eval counter value |
procedure, public, pass(self) :: print_timer_info | Print current timing data |
procedure, public, pass(self) :: reset_eval_counter | Reset eval counter |
procedure, public, pass(self) :: reset_timer => reset_eval_timer | Reset current timing data |
procedure(abstract_eval_cdp), public, deferred, pass(self) :: response | Procedure to evaluate the system response . |
System for Newton fixed-point iteration via the Jacobian
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
class(abstract_jacobian_linop_csp), | public, | allocatable | :: | jacobian |
System Jacobian . |
procedure, public, pass(self) :: eval => eval_csp | Wrapper for response including the counter increment |
procedure, public, pass(self) :: finalize_timer => finalize_eval_timer | Finalize timer and print complete history |
procedure, public, pass(self) :: get_eval_counter | Return eval counter value |
procedure, public, pass(self) :: print_timer_info | Print current timing data |
procedure, public, pass(self) :: reset_eval_counter | Reset eval counter |
procedure, public, pass(self) :: reset_timer => reset_eval_timer | Reset current timing data |
procedure(abstract_eval_csp), public, deferred, pass(self) :: response | Procedure to evaluate the system response . |
System for Newton fixed-point iteration via the Jacobian
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
class(abstract_jacobian_linop_rdp), | public, | allocatable | :: | jacobian |
System Jacobian . |
procedure, public, pass(self) :: eval => eval_rdp | Wrapper for response including the counter increment |
procedure, public, pass(self) :: finalize_timer => finalize_eval_timer | Finalize timer and print complete history |
procedure, public, pass(self) :: get_eval_counter | Return eval counter value |
procedure, public, pass(self) :: print_timer_info | Print current timing data |
procedure, public, pass(self) :: reset_eval_counter | Reset eval counter |
procedure, public, pass(self) :: reset_timer => reset_eval_timer | Reset current timing data |
procedure(abstract_eval_rdp), public, deferred, pass(self) :: response | Procedure to evaluate the system response . |
System for Newton fixed-point iteration via the Jacobian
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
class(abstract_jacobian_linop_rsp), | public, | allocatable | :: | jacobian |
System Jacobian . |
procedure, public, pass(self) :: eval => eval_rsp | Wrapper for response including the counter increment |
procedure, public, pass(self) :: finalize_timer => finalize_eval_timer | Finalize timer and print complete history |
procedure, public, pass(self) :: get_eval_counter | Return eval counter value |
procedure, public, pass(self) :: print_timer_info | Print current timing data |
procedure, public, pass(self) :: reset_eval_counter | Reset eval counter |
procedure, public, pass(self) :: reset_timer => reset_eval_timer | Reset current timing data |
procedure(abstract_eval_rsp), public, deferred, pass(self) :: response | Procedure to evaluate the system response . |