CDTK.Dynamics.EhrenfestDyn module

class CDTK.Dynamics.EhrenfestDyn.EhrenfestDyn(**opts)[source]

Bases: object

Control an Ehrenfest-dynamical evolution

decay_of_mixing(**opts)[source]
Perform the decay-of-mixing procedure for decoherence

compute the decoherence direction [s] compute the decoherence time [tau]

Returns

decoh_direction - decohenrece direction decoh_time_tau - decoherence time

get_funcDPL(a_x, **opts)[source]

Return the dipole unction to be used from an EhrenfestDyn object

get_funcE(**opts)[source]

Return the energy function to be used from a SimulationBox object

get_funcG()[source]

Return the gradient function to be used from a SimulationBox object

The gradient contains two components

get_funcVD(a_x, **opts)[source]

Return the coupling matrix to be used from an EhrenfestDyn object

get_prob_FS(time)[source]

Returns the FS hopp probability matrix g

gradient_ED(a_x, **opts)[source]

Return the overall energy scalar and gradient vector via density matrix for the Ehrenfest dynamics.

The [E]hrenfest and [D]ecoherence contribution are implemented in the density matrix computed in the _updateDensityMat function.

Input arguments:

a_x – positions of the system

Returns:

e_ehrenfest – potential energy scalar for Ehrenfest dynamics g_ehrenfest – energy gradient vector for Ehrenfest dynamics

e_adiabatic – potential energy for all electronic states g_adiabatic – energy gradient for all electronic states

linear_interpolate(time, **opts)[source]

Returns interpolated E and V.D

optional arguments: - retEVd: variables to be interpolated

‘returnAll’ - interpolated E and V.D (default) ‘returnVd’ - interpolated V.D (alternative)

linear_interpolate_Vd(time, **opts)[source]

Continuously interpolate the non-adiabatic coupling Vd after the initializing classical step. adapted to the wavefunction overlap method.

Inputs:

time: current time of quantum integration

uses:

self.Vd_intp_TIME: non-adiabatic coupling at t self.Vd_intp_TIMEpDT: non-adiabatic coupling at t+dt self.Vd_TIMEpDT: non-adiabatic coupling at t+dt/2

Returns:

the interpolated non-adiabatic coupling

Return type:

Vd_intm

optional arguments:
is_init: whether to be the initialization classical step

default - False