This interface provides methods to evaluate the matrix-vector product based on the Arnoldi method.
call kexpm(c, A, b, tau, tol, info [, trans] [, kdim])
c
: Output vector (or vectors). It is an intent(out)
argument.
A
: Linear operator to be exponentiated. It is an intent(in)
argument.
b
: Vector to be multiplied by . It is an intent(in)
argument.
tau
: real
(singe or double) time over which the matrix exponential needs to
be computed. It is an intent(in)
argument.
info
: integer
Information flag.
trans
(optional) : Whether or is being used.
(default trans=.false.
)
kdim
(optional) : Dimension of the Krylov subspace used in the Arnoldi method.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_vector_rsp), | intent(out) | :: | c |
Best approximation of in the computed Krylov subspace |
||
class(abstract_linop_rsp), | intent(in) | :: | A |
Linear operator to be exponentiated. |
||
class(abstract_vector_rsp), | intent(in) | :: | b |
Input vector on which to apply . |
||
real(kind=sp), | intent(in) | :: | tau |
Time horizon for the exponentiation. |
||
real(kind=sp), | intent(in) | :: | tol |
Solution tolerance based on error estimates. |
||
integer, | intent(out) | :: | info |
Information flag. |
||
logical, | intent(in), | optional | :: | trans |
Use transpose? |
|
integer, | intent(in), | optional | :: | kdim |
Maximum size of the Krylov subspace. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_vector_rsp), | intent(out) | :: | C(:) |
Best Krylov approximation of . |
||
class(abstract_linop_rsp), | intent(in) | :: | A |
Linear operator to be exponentiated. |
||
class(abstract_vector_rsp), | intent(in) | :: | B(:) |
Input matrix on which to apply . |
||
real(kind=sp), | intent(in) | :: | tau |
Time horizon for the exponentiation. |
||
real(kind=sp), | intent(in) | :: | tol |
Solution toleance based on error estimates. |
||
integer, | intent(out) | :: | info |
Information flag. |
||
logical, | intent(in), | optional | :: | trans |
Use transpose ? |
|
integer, | intent(in), | optional | :: | kdim |
Maximum size of the Krylov subspace. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_vector_rdp), | intent(out) | :: | c |
Best approximation of in the computed Krylov subspace |
||
class(abstract_linop_rdp), | intent(in) | :: | A |
Linear operator to be exponentiated. |
||
class(abstract_vector_rdp), | intent(in) | :: | b |
Input vector on which to apply . |
||
real(kind=dp), | intent(in) | :: | tau |
Time horizon for the exponentiation. |
||
real(kind=dp), | intent(in) | :: | tol |
Solution tolerance based on error estimates. |
||
integer, | intent(out) | :: | info |
Information flag. |
||
logical, | intent(in), | optional | :: | trans |
Use transpose? |
|
integer, | intent(in), | optional | :: | kdim |
Maximum size of the Krylov subspace. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_vector_rdp), | intent(out) | :: | C(:) |
Best Krylov approximation of . |
||
class(abstract_linop_rdp), | intent(in) | :: | A |
Linear operator to be exponentiated. |
||
class(abstract_vector_rdp), | intent(in) | :: | B(:) |
Input matrix on which to apply . |
||
real(kind=dp), | intent(in) | :: | tau |
Time horizon for the exponentiation. |
||
real(kind=dp), | intent(in) | :: | tol |
Solution toleance based on error estimates. |
||
integer, | intent(out) | :: | info |
Information flag. |
||
logical, | intent(in), | optional | :: | trans |
Use transpose ? |
|
integer, | intent(in), | optional | :: | kdim |
Maximum size of the Krylov subspace. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_vector_csp), | intent(out) | :: | c |
Best approximation of in the computed Krylov subspace |
||
class(abstract_linop_csp), | intent(in) | :: | A |
Linear operator to be exponentiated. |
||
class(abstract_vector_csp), | intent(in) | :: | b |
Input vector on which to apply . |
||
real(kind=sp), | intent(in) | :: | tau |
Time horizon for the exponentiation. |
||
real(kind=sp), | intent(in) | :: | tol |
Solution tolerance based on error estimates. |
||
integer, | intent(out) | :: | info |
Information flag. |
||
logical, | intent(in), | optional | :: | trans |
Use transpose? |
|
integer, | intent(in), | optional | :: | kdim |
Maximum size of the Krylov subspace. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_vector_csp), | intent(out) | :: | C(:) |
Best Krylov approximation of . |
||
class(abstract_linop_csp), | intent(in) | :: | A |
Linear operator to be exponentiated. |
||
class(abstract_vector_csp), | intent(in) | :: | B(:) |
Input matrix on which to apply . |
||
real(kind=sp), | intent(in) | :: | tau |
Time horizon for the exponentiation. |
||
real(kind=sp), | intent(in) | :: | tol |
Solution toleance based on error estimates. |
||
integer, | intent(out) | :: | info |
Information flag. |
||
logical, | intent(in), | optional | :: | trans |
Use transpose ? |
|
integer, | intent(in), | optional | :: | kdim |
Maximum size of the Krylov subspace. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_vector_cdp), | intent(out) | :: | c |
Best approximation of in the computed Krylov subspace |
||
class(abstract_linop_cdp), | intent(in) | :: | A |
Linear operator to be exponentiated. |
||
class(abstract_vector_cdp), | intent(in) | :: | b |
Input vector on which to apply . |
||
real(kind=dp), | intent(in) | :: | tau |
Time horizon for the exponentiation. |
||
real(kind=dp), | intent(in) | :: | tol |
Solution tolerance based on error estimates. |
||
integer, | intent(out) | :: | info |
Information flag. |
||
logical, | intent(in), | optional | :: | trans |
Use transpose? |
|
integer, | intent(in), | optional | :: | kdim |
Maximum size of the Krylov subspace. |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_vector_cdp), | intent(out) | :: | C(:) |
Best Krylov approximation of . |
||
class(abstract_linop_cdp), | intent(in) | :: | A |
Linear operator to be exponentiated. |
||
class(abstract_vector_cdp), | intent(in) | :: | B(:) |
Input matrix on which to apply . |
||
real(kind=dp), | intent(in) | :: | tau |
Time horizon for the exponentiation. |
||
real(kind=dp), | intent(in) | :: | tol |
Solution toleance based on error estimates. |
||
integer, | intent(out) | :: | info |
Information flag. |
||
logical, | intent(in), | optional | :: | trans |
Use transpose ? |
|
integer, | intent(in), | optional | :: | kdim |
Maximum size of the Krylov subspace. |