LightKrylov_AbstractSystems Module

This module provides the abstract types necessary to define an algebraic system of nonlinear equations to be solved using the Newton method.



Derived Types

type, public, abstract, extends(abstract_linop_cdp) ::  abstract_jacobian_linop_cdp

Abstract type for the local linearization of the system around the state X

Components

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')

Type-Bound Procedures

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 .

type, public, abstract, extends(abstract_linop_csp) ::  abstract_jacobian_linop_csp

Abstract type for the local linearization of the system around the state X

Components

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')

Type-Bound Procedures

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 .

type, public, abstract, extends(abstract_linop_rdp) ::  abstract_jacobian_linop_rdp

Abstract type for the local linearization of the system around the state X

Components

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')

Type-Bound Procedures

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 .

type, public, abstract, extends(abstract_linop_rsp) ::  abstract_jacobian_linop_rsp

Abstract type for the local linearization of the system around the state X

Components

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')

Type-Bound Procedures

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 .

type, public, abstract ::  abstract_system

Type-Bound Procedures

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

type, public, abstract, extends(abstract_system) ::  abstract_system_cdp

System for Newton fixed-point iteration via the Jacobian

Components

Type Visibility Attributes Name Initial
class(abstract_jacobian_linop_cdp), public, allocatable :: jacobian

System Jacobian .

Type-Bound Procedures

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 .

type, public, abstract, extends(abstract_system) ::  abstract_system_csp

System for Newton fixed-point iteration via the Jacobian

Components

Type Visibility Attributes Name Initial
class(abstract_jacobian_linop_csp), public, allocatable :: jacobian

System Jacobian .

Type-Bound Procedures

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 .

type, public, abstract, extends(abstract_system) ::  abstract_system_rdp

System for Newton fixed-point iteration via the Jacobian

Components

Type Visibility Attributes Name Initial
class(abstract_jacobian_linop_rdp), public, allocatable :: jacobian

System Jacobian .

Type-Bound Procedures

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 .

type, public, abstract, extends(abstract_system) ::  abstract_system_rsp

System for Newton fixed-point iteration via the Jacobian

Components

Type Visibility Attributes Name Initial
class(abstract_jacobian_linop_rsp), public, allocatable :: jacobian

System Jacobian .

Type-Bound Procedures

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 .