ExpokitOps

Fortran module ExpokitOps:Uses the Expokit package to calculate the exponential of a non-hermitian matrix.

Authors

Details

The copyrights of the Expokit package apply to this module. A copy of the Expokit copyright has been delived within OpenMPS. More info: EXPOKIT: Software Package for Computing Matrix Exponentials. ACM - Transactions On Mathematical Software, 24(1):130-156, 1998

The following procedures are available.

procedure

include.f90

mpi.f90

exp_kit

X

ExpokitOps_f90.ZGPADM()[source]

fortran-subroutine - ?? () Routine from Expokit for exponentiating non-Hermitian effective Hamiltonians.

Arguments

idegINTEGER, in

The degre of the diagonal Pade to be used. A value of 6 is generally satisfactory.

mINTEGER, in

Order of H.

tREAL, in

time-scale (can be < 0).

HCOMPLEX(ldh, m), in

Argument matrix to be exponentiated.

ldhINTEGER, in

Leading order (first dimension/number of rows) of the matrix H.

wspCOMPLEX(lwsp), out

Workspace with lwsp .ge. 4*m*m+ideg+1.

lwspINTEGER, in

Size of the workspace wsp.

ipivINTEGER(m), out

Workspace.

iexphINTEGER, out

Number such that wsp(iexph) points to exp(tH) i.e., exp(tH) is located at wsp(iexph … iexph+m*m-1) NOTE: if the routine was called with wsp(iptr), then exp(tH) will start at wsp(iptr+iexph-1).

nsINTEGER, out

Number of scaling-squaring used.

iflagINTEGER, out

Exit flag: iflag = 0 - no problem; iflag < 0 - problem

Details

Computes exp(t*H), the matrix exponential of a general complex matrix in full, using the irreducible rational Pade approximation to the exponential exp(z) = r(z) = (+/-)( I + 2*(q(z)/p(z)) ), combined with scaling-and-squaring.

Roger B. Sidje (rbs@maths.uq.edu.au) EXPOKIT: Software Package for Computing Matrix Exponentials. ACM - Transactions On Mathematical Software, 24(1):130-156, 1998

Source Code

show / hide f90 code
ExpokitOps_f90.exp_kit_complex()[source]

fortran-subroutine - August 2017 (dj, updated) Calculate the matrix exponential of a non-hermitian matrix via EXPOKIT.

Arguments

UCOMPLEX(*, *), out

The exponential of H times the scalar t.

tREAL, in

Scaling for the matrix H, e.g. size of the time step.

HCOMPLEX(*, *), in

H is the matrix to be exponentiated, weighted with a scalar t.

dimINTEGER, in

Dimension of the square matrix.

Source Code

show / hide f90 code