LightKrylov_TestUtils Module


Uses


Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: test_size = 128

Interfaces

public interface get_data

  • private subroutine get_data_vec_rsp(vec_out, vec_in)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=sp), intent(out) :: vec_out(:)
    type(vector_rsp), intent(in) :: vec_in
  • private subroutine get_data_vec_basis_rsp(basis_out, basis_in)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=sp), intent(out) :: basis_out(:,:)
    type(vector_rsp), intent(in) :: basis_in(:)
  • private subroutine get_data_linop_rsp(mat_out, linop_in)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=sp), intent(out) :: mat_out(:,:)
    type(linop_rsp), intent(in) :: linop_in
  • private subroutine get_data_vec_rdp(vec_out, vec_in)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(out) :: vec_out(:)
    type(vector_rdp), intent(in) :: vec_in
  • private subroutine get_data_vec_basis_rdp(basis_out, basis_in)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(out) :: basis_out(:,:)
    type(vector_rdp), intent(in) :: basis_in(:)
  • private subroutine get_data_linop_rdp(mat_out, linop_in)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(out) :: mat_out(:,:)
    type(linop_rdp), intent(in) :: linop_in
  • private subroutine get_data_vec_csp(vec_out, vec_in)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=sp), intent(out) :: vec_out(:)
    type(vector_csp), intent(in) :: vec_in
  • private subroutine get_data_vec_basis_csp(basis_out, basis_in)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=sp), intent(out) :: basis_out(:,:)
    type(vector_csp), intent(in) :: basis_in(:)
  • private subroutine get_data_linop_csp(mat_out, linop_in)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=sp), intent(out) :: mat_out(:,:)
    type(linop_csp), intent(in) :: linop_in
  • private subroutine get_data_vec_cdp(vec_out, vec_in)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=dp), intent(out) :: vec_out(:)
    type(vector_cdp), intent(in) :: vec_in
  • private subroutine get_data_vec_basis_cdp(basis_out, basis_in)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=dp), intent(out) :: basis_out(:,:)
    type(vector_cdp), intent(in) :: basis_in(:)
  • private subroutine get_data_linop_cdp(mat_out, linop_in)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=dp), intent(out) :: mat_out(:,:)
    type(linop_cdp), intent(in) :: linop_in

public interface get_err_str

  • private subroutine get_err_str_sp(msg, info, err)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(inout) :: msg
    character(len=*), intent(in) :: info
    real(kind=sp) :: err
  • private subroutine get_err_str_dp(msg, info, err)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(inout) :: msg
    character(len=*), intent(in) :: info
    real(kind=dp) :: err

public interface hermitian_linop_cdp

  • private pure module function construct_hermitian_linop_cdp(data) result(A)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=dp), intent(in), dimension(test_size, test_size) :: data

    Return Value type(hermitian_linop_cdp)

public interface hermitian_linop_csp

  • private pure module function construct_hermitian_linop_csp(data) result(A)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=sp), intent(in), dimension(test_size, test_size) :: data

    Return Value type(hermitian_linop_csp)

public interface init_rand

  • private subroutine init_rand_vec_rsp(x)

    Arguments

    Type IntentOptional Attributes Name
    type(vector_rsp), intent(inout) :: x
  • private subroutine init_rand_basis_rsp(X)

    Arguments

    Type IntentOptional Attributes Name
    type(vector_rsp), intent(inout) :: X(:)
  • private subroutine init_rand_linop_rsp(linop)

    Arguments

    Type IntentOptional Attributes Name
    type(linop_rsp), intent(inout) :: linop
  • private subroutine init_rand_spd_linop_rsp(linop)

    Arguments

    Type IntentOptional Attributes Name
    type(spd_linop_rsp), intent(inout) :: linop
  • private subroutine init_rand_vec_rdp(x)

    Arguments

    Type IntentOptional Attributes Name
    type(vector_rdp), intent(inout) :: x
  • private subroutine init_rand_basis_rdp(X)

    Arguments

    Type IntentOptional Attributes Name
    type(vector_rdp), intent(inout) :: X(:)
  • private subroutine init_rand_linop_rdp(linop)

    Arguments

    Type IntentOptional Attributes Name
    type(linop_rdp), intent(inout) :: linop
  • private subroutine init_rand_spd_linop_rdp(linop)

    Arguments

    Type IntentOptional Attributes Name
    type(spd_linop_rdp), intent(inout) :: linop
  • private subroutine init_rand_vec_csp(x)

    Arguments

    Type IntentOptional Attributes Name
    type(vector_csp), intent(inout) :: x
  • private subroutine init_rand_basis_csp(X)

    Arguments

    Type IntentOptional Attributes Name
    type(vector_csp), intent(inout) :: X(:)
  • private subroutine init_rand_linop_csp(linop)

    Arguments

    Type IntentOptional Attributes Name
    type(linop_csp), intent(inout) :: linop
  • private subroutine init_rand_hermitian_linop_csp(linop)

    Arguments

    Type IntentOptional Attributes Name
    type(hermitian_linop_csp), intent(inout) :: linop
  • private subroutine init_rand_vec_cdp(x)

    Arguments

    Type IntentOptional Attributes Name
    type(vector_cdp), intent(inout) :: x
  • private subroutine init_rand_basis_cdp(X)

    Arguments

    Type IntentOptional Attributes Name
    type(vector_cdp), intent(inout) :: X(:)
  • private subroutine init_rand_linop_cdp(linop)

    Arguments

    Type IntentOptional Attributes Name
    type(linop_cdp), intent(inout) :: linop
  • private subroutine init_rand_hermitian_linop_cdp(linop)

    Arguments

    Type IntentOptional Attributes Name
    type(hermitian_linop_cdp), intent(inout) :: linop

public interface linop_cdp

  • private pure module function construct_linop_cdp(data) result(A)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=dp), intent(in), dimension(test_size, test_size) :: data

    Return Value type(linop_cdp)

public interface linop_csp

  • private pure module function construct_linop_csp(data) result(A)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=sp), intent(in), dimension(test_size, test_size) :: data

    Return Value type(linop_csp)

public interface linop_rdp

  • private pure module function construct_linop_rdp(data) result(A)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in), dimension(test_size, test_size) :: data

    Return Value type(linop_rdp)

public interface linop_rsp

  • private pure module function construct_linop_rsp(data) result(A)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=sp), intent(in), dimension(test_size, test_size) :: data

    Return Value type(linop_rsp)

public interface put_data

  • private subroutine put_data_vec_rsp(vec_out, vec_in)

    Arguments

    Type IntentOptional Attributes Name
    type(vector_rsp), intent(out) :: vec_out
    real(kind=sp), intent(in) :: vec_in
  • private subroutine put_data_vec_basis_rsp(basis_out, basis_in)

    Arguments

    Type IntentOptional Attributes Name
    type(vector_rsp), intent(out) :: basis_out(:)
    real(kind=sp), intent(in) :: basis_in(:,:)
  • private subroutine put_data_linop_rsp(linop_out, mat_in)

    Arguments

    Type IntentOptional Attributes Name
    type(linop_rsp), intent(out) :: linop_out
    real(kind=sp), intent(in) :: mat_in(:,:)
  • private subroutine put_data_vec_rdp(vec_out, vec_in)

    Arguments

    Type IntentOptional Attributes Name
    type(vector_rdp), intent(out) :: vec_out
    real(kind=dp), intent(in) :: vec_in
  • private subroutine put_data_vec_basis_rdp(basis_out, basis_in)

    Arguments

    Type IntentOptional Attributes Name
    type(vector_rdp), intent(out) :: basis_out(:)
    real(kind=dp), intent(in) :: basis_in(:,:)
  • private subroutine put_data_linop_rdp(linop_out, mat_in)

    Arguments

    Type IntentOptional Attributes Name
    type(linop_rdp), intent(out) :: linop_out
    real(kind=dp), intent(in) :: mat_in(:,:)
  • private subroutine put_data_vec_csp(vec_out, vec_in)

    Arguments

    Type IntentOptional Attributes Name
    type(vector_csp), intent(out) :: vec_out
    complex(kind=sp), intent(in) :: vec_in
  • private subroutine put_data_vec_basis_csp(basis_out, basis_in)

    Arguments

    Type IntentOptional Attributes Name
    type(vector_csp), intent(out) :: basis_out(:)
    complex(kind=sp), intent(in) :: basis_in(:,:)
  • private subroutine put_data_linop_csp(linop_out, mat_in)

    Arguments

    Type IntentOptional Attributes Name
    type(linop_csp), intent(out) :: linop_out
    complex(kind=sp), intent(in) :: mat_in(:,:)
  • private subroutine put_data_vec_cdp(vec_out, vec_in)

    Arguments

    Type IntentOptional Attributes Name
    type(vector_cdp), intent(out) :: vec_out
    complex(kind=dp), intent(in) :: vec_in
  • private subroutine put_data_vec_basis_cdp(basis_out, basis_in)

    Arguments

    Type IntentOptional Attributes Name
    type(vector_cdp), intent(out) :: basis_out(:)
    complex(kind=dp), intent(in) :: basis_in(:,:)
  • private subroutine put_data_linop_cdp(linop_out, mat_in)

    Arguments

    Type IntentOptional Attributes Name
    type(linop_cdp), intent(out) :: linop_out
    complex(kind=dp), intent(in) :: mat_in(:,:)

public interface spd_linop_rdp

  • private pure module function construct_spd_linop_rdp(data) result(A)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in), dimension(test_size, test_size) :: data

    Return Value type(spd_linop_rdp)

public interface spd_linop_rsp

  • private pure module function construct_spd_linop_rsp(data) result(A)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=sp), intent(in), dimension(test_size, test_size) :: data

    Return Value type(spd_linop_rsp)


Derived Types

type, public, extends(abstract_hermitian_linop_cdp) ::  hermitian_linop_cdp

Components

Type Visibility Attributes Name Initial
complex(kind=dp), public, dimension(test_size, test_size) :: data = zero_cdp
type(lightkrylov_timer), public :: matvec_timer = lightkrylov_timer('matvec timer')
type(lightkrylov_timer), public :: rmatvec_timer = lightkrylov_timer('rmatvec timer')

Constructor

private pure, module function construct_hermitian_linop_cdp (data)

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, public, pass(self) :: matvec => hermitian_matvec_cdp
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, public, pass(self) :: rmatvec => hermitian_matvec_cdp

type, public, extends(abstract_hermitian_linop_csp) ::  hermitian_linop_csp

Components

Type Visibility Attributes Name Initial
complex(kind=sp), public, dimension(test_size, test_size) :: data = zero_csp
type(lightkrylov_timer), public :: matvec_timer = lightkrylov_timer('matvec timer')
type(lightkrylov_timer), public :: rmatvec_timer = lightkrylov_timer('rmatvec timer')

Constructor

private pure, module function construct_hermitian_linop_csp (data)

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, public, pass(self) :: matvec => hermitian_matvec_csp
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, public, pass(self) :: rmatvec => hermitian_matvec_csp

type, public, extends(abstract_jacobian_linop_rdp) ::  jacobian_rdp

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, public, pass(self) :: matvec => lin_roessler_rdp
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, public, pass(self) :: rmatvec => adj_lin_roessler_rdp

type, public, extends(abstract_jacobian_linop_rsp) ::  jacobian_rsp

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, public, pass(self) :: matvec => lin_roessler_rsp
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, public, pass(self) :: rmatvec => adj_lin_roessler_rsp

type, public, extends(abstract_linop_cdp) ::  linop_cdp

Components

Type Visibility Attributes Name Initial
complex(kind=dp), public, dimension(test_size, test_size) :: data = zero_cdp
type(lightkrylov_timer), public :: matvec_timer = lightkrylov_timer('matvec timer')
type(lightkrylov_timer), public :: rmatvec_timer = lightkrylov_timer('rmatvec timer')

Constructor

private pure, module function construct_linop_cdp (data)

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, public, pass(self) :: matvec => matvec_cdp
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, public, pass(self) :: rmatvec => rmatvec_cdp

type, public, extends(abstract_linop_csp) ::  linop_csp

Components

Type Visibility Attributes Name Initial
complex(kind=sp), public, dimension(test_size, test_size) :: data = zero_csp
type(lightkrylov_timer), public :: matvec_timer = lightkrylov_timer('matvec timer')
type(lightkrylov_timer), public :: rmatvec_timer = lightkrylov_timer('rmatvec timer')

Constructor

private pure, module function construct_linop_csp (data)

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, public, pass(self) :: matvec => matvec_csp
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, public, pass(self) :: rmatvec => rmatvec_csp

type, public, extends(abstract_linop_rdp) ::  linop_rdp

Components

Type Visibility Attributes Name Initial
real(kind=dp), public, dimension(test_size, test_size) :: data = 0.0_dp
type(lightkrylov_timer), public :: matvec_timer = lightkrylov_timer('matvec timer')
type(lightkrylov_timer), public :: rmatvec_timer = lightkrylov_timer('rmatvec timer')

Constructor

private pure, module function construct_linop_rdp (data)

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, public, pass(self) :: matvec => matvec_rdp
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, public, pass(self) :: rmatvec => rmatvec_rdp

type, public, extends(abstract_linop_rsp) ::  linop_rsp

Components

Type Visibility Attributes Name Initial
real(kind=sp), public, dimension(test_size, test_size) :: data = 0.0_sp
type(lightkrylov_timer), public :: matvec_timer = lightkrylov_timer('matvec timer')
type(lightkrylov_timer), public :: rmatvec_timer = lightkrylov_timer('rmatvec timer')

Constructor

private pure, module function construct_linop_rsp (data)

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, public, pass(self) :: matvec => matvec_rsp
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, public, pass(self) :: rmatvec => rmatvec_rsp

type, public, extends(abstract_system_rdp) ::  roessler_rdp

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, public, pass(self) :: response => eval_roessler_rdp

type, public, extends(abstract_system_rsp) ::  roessler_rsp

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, public, pass(self) :: response => eval_roessler_rsp

type, public, extends(abstract_sym_linop_rdp) ::  spd_linop_rdp

Components

Type Visibility Attributes Name Initial
real(kind=dp), public, dimension(test_size, test_size) :: data = 0.0_dp
type(lightkrylov_timer), public :: matvec_timer = lightkrylov_timer('matvec timer')
type(lightkrylov_timer), public :: rmatvec_timer = lightkrylov_timer('rmatvec timer')

Constructor

private pure, module function construct_spd_linop_rdp (data)

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, public, pass(self) :: matvec => sdp_matvec_rdp
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, public, pass(self) :: rmatvec => sdp_matvec_rdp

type, public, extends(abstract_sym_linop_rsp) ::  spd_linop_rsp

Components

Type Visibility Attributes Name Initial
real(kind=sp), public, dimension(test_size, test_size) :: data = 0.0_sp
type(lightkrylov_timer), public :: matvec_timer = lightkrylov_timer('matvec timer')
type(lightkrylov_timer), public :: rmatvec_timer = lightkrylov_timer('rmatvec timer')

Constructor

private pure, module function construct_spd_linop_rsp (data)

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, public, pass(self) :: matvec => sdp_matvec_rsp
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, public, pass(self) :: rmatvec => sdp_matvec_rsp

type, public, extends(abstract_vector_rdp) ::  state_vector_rdp

Components

Type Visibility Attributes Name Initial
real(kind=dp), public :: x = 0.0_dp
real(kind=dp), public :: y = 0.0_dp
real(kind=dp), public :: z = 0.0_dp

Type-Bound Procedures

procedure, public, pass(self) :: add => add_rdp

Adds two abstract_vector, i.e. .

procedure, public, pass(self) :: axpby => axpby_state_rdp
procedure, public, pass(self) :: chsgn => chsgn_rdp

Change the sign of a vector, i.e. .

procedure, public, pass(self) :: dot => dot_state_rdp
procedure, public, pass(self) :: get_size => get_size_state_rdp
procedure, public, pass(self) :: norm => norm_rdp

Computes the norm of the abstract_vector.

procedure, public, pass(self) :: rand => rand_state_rdp
procedure, public, pass(self) :: scal => scal_state_rdp
procedure, public, pass(self) :: sub => sub_rdp

Subtracts two abstract_vector, i.e. .

procedure, public, pass(self) :: zero => zero_state_rdp

type, public, extends(abstract_vector_rsp) ::  state_vector_rsp

Components

Type Visibility Attributes Name Initial
real(kind=sp), public :: x = 0.0_sp
real(kind=sp), public :: y = 0.0_sp
real(kind=sp), public :: z = 0.0_sp

Type-Bound Procedures

procedure, public, pass(self) :: add => add_rsp

Adds two abstract_vector, i.e. .

procedure, public, pass(self) :: axpby => axpby_state_rsp
procedure, public, pass(self) :: chsgn => chsgn_rsp

Change the sign of a vector, i.e. .

procedure, public, pass(self) :: dot => dot_state_rsp
procedure, public, pass(self) :: get_size => get_size_state_rsp
procedure, public, pass(self) :: norm => norm_rsp

Computes the norm of the abstract_vector.

procedure, public, pass(self) :: rand => rand_state_rsp
procedure, public, pass(self) :: scal => scal_state_rsp
procedure, public, pass(self) :: sub => sub_rsp

Subtracts two abstract_vector, i.e. .

procedure, public, pass(self) :: zero => zero_state_rsp

type, public, extends(abstract_vector_cdp) ::  vector_cdp

Components

Type Visibility Attributes Name Initial
complex(kind=dp), public, dimension(test_size) :: data = 0.0_dp

Type-Bound Procedures

procedure, public, pass(self) :: add => add_cdp

Adds two abstract_vector, i.e. .

procedure, public, pass(self) :: axpby => axpby_cdp
procedure, public, pass(self) :: chsgn => chsgn_cdp

Change the sign of a vector, i.e. .

procedure, public, pass(self) :: dot => dot_cdp
procedure, public, pass(self) :: get_size => get_size_cdp
procedure, public, pass(self) :: norm => norm_cdp

Computes the norm of the abstract_vector.

procedure, public, pass(self) :: rand => rand_cdp
procedure, public, pass(self) :: scal => scal_cdp
procedure, public, pass(self) :: sub => sub_cdp

Subtracts two abstract_vector, i.e. .

procedure, public, pass(self) :: zero => init_zero_cdp

type, public, extends(abstract_vector_csp) ::  vector_csp

Components

Type Visibility Attributes Name Initial
complex(kind=sp), public, dimension(test_size) :: data = 0.0_sp

Type-Bound Procedures

procedure, public, pass(self) :: add => add_csp

Adds two abstract_vector, i.e. .

procedure, public, pass(self) :: axpby => axpby_csp
procedure, public, pass(self) :: chsgn => chsgn_csp

Change the sign of a vector, i.e. .

procedure, public, pass(self) :: dot => dot_csp
procedure, public, pass(self) :: get_size => get_size_csp
procedure, public, pass(self) :: norm => norm_csp

Computes the norm of the abstract_vector.

procedure, public, pass(self) :: rand => rand_csp
procedure, public, pass(self) :: scal => scal_csp
procedure, public, pass(self) :: sub => sub_csp

Subtracts two abstract_vector, i.e. .

procedure, public, pass(self) :: zero => init_zero_csp

type, public, extends(abstract_vector_rdp) ::  vector_rdp

Components

Type Visibility Attributes Name Initial
real(kind=dp), public, dimension(test_size) :: data = 0.0_dp

Type-Bound Procedures

procedure, public, pass(self) :: add => add_rdp

Adds two abstract_vector, i.e. .

procedure, public, pass(self) :: axpby => axpby_rdp
procedure, public, pass(self) :: chsgn => chsgn_rdp

Change the sign of a vector, i.e. .

procedure, public, pass(self) :: dot => dot_rdp
procedure, public, pass(self) :: get_size => get_size_rdp
procedure, public, pass(self) :: norm => norm_rdp

Computes the norm of the abstract_vector.

procedure, public, pass(self) :: rand => rand_rdp
procedure, public, pass(self) :: scal => scal_rdp
procedure, public, pass(self) :: sub => sub_rdp

Subtracts two abstract_vector, i.e. .

procedure, public, pass(self) :: zero => init_zero_rdp

type, public, extends(abstract_vector_rsp) ::  vector_rsp

Components

Type Visibility Attributes Name Initial
real(kind=sp), public, dimension(test_size) :: data = 0.0_sp

Type-Bound Procedures

procedure, public, pass(self) :: add => add_rsp

Adds two abstract_vector, i.e. .

procedure, public, pass(self) :: axpby => axpby_rsp
procedure, public, pass(self) :: chsgn => chsgn_rsp

Change the sign of a vector, i.e. .

procedure, public, pass(self) :: dot => dot_rsp
procedure, public, pass(self) :: get_size => get_size_rsp
procedure, public, pass(self) :: norm => norm_rsp

Computes the norm of the abstract_vector.

procedure, public, pass(self) :: rand => rand_rsp
procedure, public, pass(self) :: scal => scal_rsp
procedure, public, pass(self) :: sub => sub_rsp

Subtracts two abstract_vector, i.e. .

procedure, public, pass(self) :: zero => init_zero_rsp

Subroutines

public subroutine get_state_rdp(state, X, Y, z)

Arguments

Type IntentOptional Attributes Name
class(abstract_vector_rdp), intent(in) :: state
real(kind=dp), intent(out) :: X
real(kind=dp), intent(out) :: Y
real(kind=dp), intent(out) :: z

public subroutine get_state_rsp(state, X, Y, z)

Arguments

Type IntentOptional Attributes Name
class(abstract_vector_rsp), intent(in) :: state
real(kind=sp), intent(out) :: X
real(kind=sp), intent(out) :: Y
real(kind=sp), intent(out) :: z

public subroutine roessler_analytical_fp_rdp(fp1, fp2)

Arguments

Type IntentOptional Attributes Name
class(state_vector_rdp), intent(out) :: fp1
class(state_vector_rdp), intent(out) :: fp2

public subroutine roessler_analytical_fp_rsp(fp1, fp2)

Arguments

Type IntentOptional Attributes Name
class(state_vector_rsp), intent(out) :: fp1
class(state_vector_rsp), intent(out) :: fp2

Module Procedures

module procedure /github/workspace/API-doc/module/lightkrylov_testutils.html construct_hermitian_linop_cdp private pure module function construct_hermitian_linop_cdp(data) result(A)

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(in), dimension(test_size, test_size) :: data

Return Value type(hermitian_linop_cdp)

module procedure /github/workspace/API-doc/module/lightkrylov_testutils.html construct_hermitian_linop_csp private pure module function construct_hermitian_linop_csp(data) result(A)

Arguments

Type IntentOptional Attributes Name
complex(kind=sp), intent(in), dimension(test_size, test_size) :: data

Return Value type(hermitian_linop_csp)

module procedure /github/workspace/API-doc/module/lightkrylov_testutils.html construct_linop_cdp private pure module function construct_linop_cdp(data) result(A)

Arguments

Type IntentOptional Attributes Name
complex(kind=dp), intent(in), dimension(test_size, test_size) :: data

Return Value type(linop_cdp)

module procedure /github/workspace/API-doc/module/lightkrylov_testutils.html construct_linop_csp private pure module function construct_linop_csp(data) result(A)

Arguments

Type IntentOptional Attributes Name
complex(kind=sp), intent(in), dimension(test_size, test_size) :: data

Return Value type(linop_csp)

module procedure /github/workspace/API-doc/module/lightkrylov_testutils.html construct_linop_rdp private pure module function construct_linop_rdp(data) result(A)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(test_size, test_size) :: data

Return Value type(linop_rdp)

module procedure /github/workspace/API-doc/module/lightkrylov_testutils.html construct_linop_rsp private pure module function construct_linop_rsp(data) result(A)

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(in), dimension(test_size, test_size) :: data

Return Value type(linop_rsp)

module procedure /github/workspace/API-doc/module/lightkrylov_testutils.html construct_spd_linop_rdp private pure module function construct_spd_linop_rdp(data) result(A)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(test_size, test_size) :: data

Return Value type(spd_linop_rdp)

module procedure /github/workspace/API-doc/module/lightkrylov_testutils.html construct_spd_linop_rsp private pure module function construct_spd_linop_rsp(data) result(A)

Arguments

Type IntentOptional Attributes Name
real(kind=sp), intent(in), dimension(test_size, test_size) :: data

Return Value type(spd_linop_rsp)