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

tuple

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 fluctuations

  • nsteps (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

tuple

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 fluctuations

  • nsteps (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) )