roessler_rsp Derived Type

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

  • private subroutine eval_rsp(self, vec_in, vec_out, atol)

    Arguments

    Type IntentOptional Attributes Name
    class(abstract_system_rsp), intent(inout) :: self
    class(abstract_vector_rsp), intent(in) :: vec_in
    class(abstract_vector_rsp), intent(out) :: vec_out
    real(kind=sp), intent(in) :: atol

procedure, public, pass(self) :: finalize_timer => finalize_eval_timer

Finalize timer and print complete history

  • private subroutine finalize_eval_timer(self)

    Finalize the system evaluation timer and print summary Note: Wrapper of the corresponding routine from lightkrylov_timer

    Arguments

    Type IntentOptional Attributes Name
    class(abstract_system), intent(inout) :: self

procedure, public, pass(self) :: get_eval_counter

Return eval counter value

  • private pure function get_eval_counter(self) result(count)

    Getter function for the number of eval calls

    Arguments

    Type IntentOptional Attributes Name
    class(abstract_system), intent(in) :: self

    Return Value integer

procedure, public, pass(self) :: print_timer_info

Print current timing data

  • private subroutine print_timer_info(self)

    Print the current timing data for the system evaluation Note: Wrapper of the corresponding routine from lightkrylov_timer

    Arguments

    Type IntentOptional Attributes Name
    class(abstract_system), intent(inout) :: self

procedure, public, pass(self) :: reset_eval_counter

Reset eval counter

  • private subroutine reset_eval_counter(self, procedure, counter, reset_timer, soft_reset, clean_timer)

    Arguments

    Type IntentOptional Attributes Name
    class(abstract_system), intent(inout) :: self
    character(len=*), intent(in) :: procedure

    name of the caller routine

    integer, intent(in), optional :: counter

    optional flag to reset to an integer other than zero.

    logical, intent(in), optional :: reset_timer

    optional flag to reset also the timer

    logical, intent(in), optional :: soft_reset

    optional flag to choose whether to save previous timing data (default: .true.)

    logical, intent(in), optional :: clean_timer

    optional flag to choose whether to fully reset the timer (default: .false.)

procedure, public, pass(self) :: reset_timer => reset_eval_timer

Reset current timing data

  • private subroutine reset_eval_timer(self, soft, clean)

    Setter routine to reset the system evaluation timer Note: Wrapper of the corresponding routine from lightkrylov_timer

    Arguments

    Type IntentOptional Attributes Name
    class(abstract_system), intent(inout) :: self
    logical, intent(in), optional :: soft
    logical, intent(in), optional :: clean

procedure, public, pass(self) :: response => eval_roessler_rsp

  • private subroutine eval_roessler_rsp(self, vec_in, vec_out, atol)

    Arguments

    Type IntentOptional Attributes Name
    class(roessler_rsp), intent(inout) :: self
    class(abstract_vector_rsp), intent(in) :: vec_in
    class(abstract_vector_rsp), intent(out) :: vec_out
    real(kind=sp), intent(in) :: atol

Source Code

    type, extends(abstract_system_rsp), public :: roessler_rsp
    contains
       private
       procedure, pass(self), public :: response => eval_roessler_rsp
    end type roessler_rsp