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_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