krylov_exptA Interface

public interface krylov_exptA

Description

Utility function to evaluate the matrix-exponential times vector.

Syntax

    call k_exptA(vec_out, A, vec_in, tau, info, trans)

Arguments

  • vec_out : Output vector.

  • A : Matrix to be exponentiated.

  • vec_in : Input vector.

  • tau : Integration time.

  • info : Information flag.

  • trans : Whether or is being used.


Module Procedures

public subroutine krylov_exptA_rsp(vec_out, A, vec_in, tau, info, trans)

Arguments

Type IntentOptional Attributes Name
class(abstract_vector_rsp), intent(out) :: vec_out

Solution vector.

class(abstract_linop_rsp), intent(inout) :: A

Linear operator to be exponentiated.

class(abstract_vector_rsp), intent(in) :: vec_in

Input vector to be multiplied by .

real(kind=sp), intent(in) :: tau

Time horizon for the exponentiation.

integer, intent(out) :: info

Information flag.

logical, intent(in), optional :: trans

Use adjoint ?

public subroutine krylov_exptA_rdp(vec_out, A, vec_in, tau, info, trans)

Arguments

Type IntentOptional Attributes Name
class(abstract_vector_rdp), intent(out) :: vec_out

Solution vector.

class(abstract_linop_rdp), intent(inout) :: A

Linear operator to be exponentiated.

class(abstract_vector_rdp), intent(in) :: vec_in

Input vector to be multiplied by .

real(kind=dp), intent(in) :: tau

Time horizon for the exponentiation.

integer, intent(out) :: info

Information flag.

logical, intent(in), optional :: trans

Use adjoint ?

public subroutine krylov_exptA_csp(vec_out, A, vec_in, tau, info, trans)

Arguments

Type IntentOptional Attributes Name
class(abstract_vector_csp), intent(out) :: vec_out

Solution vector.

class(abstract_linop_csp), intent(inout) :: A

Linear operator to be exponentiated.

class(abstract_vector_csp), intent(in) :: vec_in

Input vector to be multiplied by .

real(kind=sp), intent(in) :: tau

Time horizon for the exponentiation.

integer, intent(out) :: info

Information flag.

logical, intent(in), optional :: trans

Use adjoint ?

public subroutine krylov_exptA_cdp(vec_out, A, vec_in, tau, info, trans)

Arguments

Type IntentOptional Attributes Name
class(abstract_vector_cdp), intent(out) :: vec_out

Solution vector.

class(abstract_linop_cdp), intent(inout) :: A

Linear operator to be exponentiated.

class(abstract_vector_cdp), intent(in) :: vec_in

Input vector to be multiplied by .

real(kind=dp), intent(in) :: tau

Time horizon for the exponentiation.

integer, intent(out) :: info

Information flag.

logical, intent(in), optional :: trans

Use adjoint ?