CDTK.Dynamics.EhrenfestDyn module
- class CDTK.Dynamics.EhrenfestDyn.EhrenfestDyn(**opts)[source]
 Bases:
objectControl 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_funcG()[source]
 Return the gradient function to be used from a SimulationBox object
The gradient contains two components
- 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