Documentation for module rt_make_propagators

Routines for calculating a complex matrix exponential.

source: rt_make_propagators.F
Loading...

public Subroutines/Functions:

decides which type of exponential has to be computed
Sparse versions of the matrix exponentials
computes U_prop*MOs using arnoldi subspace algorithm
Propagation using the Baker-Campbell-Hausdorff expansion, currently only works for rtp
performs propagations if explicit matrix exponentials are used ETRS: exp(i*H(t+dt)*dt/2)*exp(i*H(t)*dt/2)*MOS EM: exp[-idt/2H(t+dt/2)*MOS
Propagation of the density matrix instead of the atomic orbitals via a matrix exponential

SUBROUTINEcompute_exponential(propagator, propagator_matrix, rtp_control, rtp)

decides which type of exponential has to be computed

Arguments:
POINTER
:: propagator(:) ...
POINTER
:: propagator_matrix(:) ...
POINTER
:: rtp_control ...
POINTER
:: rtp ...

SUBROUTINEcompute_exponential_sparse(propagator, propagator_matrix, rtp_control, rtp)

Sparse versions of the matrix exponentials

Arguments:
POINTER
:: propagator(:) ...
POINTER
:: propagator_matrix(:) ...
POINTER
:: rtp_control ...
POINTER
:: rtp ...

SUBROUTINEpropagate_arnoldi(rtp, rtp_control)

computes U_prop*MOs using arnoldi subspace algorithm

Arguments:
POINTER
:: rtp ...
POINTER
:: rtp_control ...

SUBROUTINEpropagate_bch(rtp, rtp_control)

Propagation using the Baker-Campbell-Hausdorff expansion, currently only works for rtp

Arguments:
POINTER
:: rtp ...
POINTER
:: rtp_control ...

SUBROUTINEpropagate_exp(rtp, rtp_control)

performs propagations if explicit matrix exponentials are used ETRS: exp(i*H(t+dt)*dt/2)*exp(i*H(t)*dt/2)*MOS EM: exp[-idt/2H(t+dt/2)*MOS

Arguments:
POINTER
:: rtp ...
POINTER
:: rtp_control ...

SUBROUTINEpropagate_exp_density(rtp, rtp_control)

Propagation of the density matrix instead of the atomic orbitals via a matrix exponential

Arguments:
POINTER
:: rtp ...
POINTER
:: rtp_control ...