decoherence_times¶
-
libra_py.workflows.nbra.decoherence_times.
decoherence_times
(Hvib, verbosity=0)[source]¶ Compute the matrix of decoherence times from the time-series data
Ref: Akimov, A. V; Prezhdo O. V. J. Phys. Chem. Lett. 2013, 4, 3857
- Parameters
Hvib (list of CMATRIX objects) – timeseries of the vibronic Hamiltonian
verbosity (int) – the flag controlling the amount of extra output Value of 0 [ default ] prints no additional output
- Returns
( decoh_times, decoh_rates ), where
- decoh_times ( MATRIX(N,N) ): the matrix of decoherence times, diagonal elements are
set to very large number which corresponds to no decoherence of a state with itself [ units: a.u. ]
- decoh_rates ( MATRIX(N,N) ): the matrix of decoherence rates, diagonal elements are
set to zero which corresponds to no decoherence of a state with itself, the off-diagonal elements are equal to inverse of the off-diagonal matrix elements of
`decoh_times`
[ units: a.u.^-1 ]
- Return type
-
libra_py.workflows.nbra.decoherence_times.
decoherence_times2rates
(tau)[source]¶ An auxiliary function to convert the decoherence times matrix into the decoherence rates matrix
- Parameters
tau (MATRIX(N,N)) – the matrix of decoherence times, diagonal elements are set to very large number which corresponds to no decoherence of a state with itself [ units: a.u. ]
- Returns
- decoh_rates: the matrix of decoherence rates, diagonal elements are
- set to zero which corresponds to no decoherence of a state with itself, the off-diagonal
elements are equal to inverse of the off-diagonal matrix elements of
`tau`
[ units: a.u.^-1 ]
- Return type
MATRIX(N,N)
-
libra_py.workflows.nbra.decoherence_times.
decoherence_times_ave
(Hvib, itimes, nsteps, verbosity=0)[source]¶ Compute the matrix of decoherence times from the time-series data that consists of vereral data sets
Ref: Akimov, A. V; Prezhdo O. V. J. Phys. Chem. Lett. 2013, 4, 3857
- Parameters
Hvib (list of lists of CMATRIX objects) – Vibronic Hamiltonians along the trajectory for different data sets (adiabatic MDs), and potential different sections of the time-range where Hvib[idata][istep] is a CMATRIX object that represents a vibronic Hamiltonian from the data set
`idata`
at the time step`istep`
.itimes (list if ints) – initial times for averaging. The number
`itimes[idata]`
tells which datapoint (timestep) of the time-series Hvib[idata] consider the beginning of the range that will be used to compute gap fluctuationsnsteps (int) – the length of the time-steps to consider in the calculations for each data set
- Returns
( decoh_times, decoh_rates ), where
- decoh_times ( MATRIX(N,N) ): the matrix of decoherence times, diagonal elements are
set to very large number which corresponds to no decoherence of a state with itself. This value is computed based on gaps averaged over several data sets. [ units: a.u. ]
- decoh_rates ( MATRIX(N,N) ): the matrix of decoherence rates, diagonal elements are
set to zero which corresponds to no decoherence of a state with itself, the off-diagonal elements are equal to inverse of the off-diagonal matrix elements of
`decoh_times`
. This value is computed based on gaps averaged over several data sets. [ units: a.u.^-1 ]
- Return type
-
libra_py.workflows.nbra.decoherence_times.
energy_gaps
(Hvib)[source]¶ Pre-compute the energy gaps along the trajectory
- Parameters
Hvib (list of MATRIX objects) – Vibronic Hamiltonians along the trajectory
- Returns
- dE, where:
dE[t].get(i,j) is the energy gap between states i and j at time t: E_i(t) - E_j(t)
- Return type
( list of MATRIX(nstates, nstates) )
-
libra_py.workflows.nbra.decoherence_times.
energy_gaps_ave
(Hvib, itimes, nsteps)[source]¶ Pre-compute the energy gaps along the trajectory
- Parameters
Hvib (list of lists of CMATRIX objects) – Vibronic Hamiltonians along the trajectory for different data sets (adiabatic MDs), and potential different sections of the time-range where Hvib[idata][istep] is a CMATRIX object that represents a vibronic Hamiltonian from the data set
`idata`
at the time step`istep`
.itimes (list if ints) – initial times for averaging. The number
`itimes[idata]`
tells which datapoint (timestep) of the time-series Hvib[idata] consider the beginning of the range that will be used to compute gap fluctuationsnsteps (int) – the length of the time-steps to consider in the calculations for each data set
- Returns
- dE, where:
dE[t].get(i,j) is the absolute value of energy gap between states i and j at time t, but also averaged over several data sets: < |E_i(t) - E_j(t)| >
- Return type
( list of MATRIX(nstates, nstates) )