CDTK.Dynamics.SurfaceHoppingLZ module
- class CDTK.Dynamics.SurfaceHoppingLZ.SurfaceHoppingLZ(**opts)[source]
Bases:
object
Control a trajectory surface-hopping evolution
- get_funcG(**opts)[source]
Return the gradient function of current electronic state to be used from a SimulationBox object
- optional argument:
nstates_g – number of electronic states requiring analytical gradient state_g – the certain designated electronic state(s) requiring analytical gradient
currently for ab initio analytical gradient method
- state_type – specify the type of electronic state that requires analytical gradient
options: current_electronic_state - for SimulationBox object
- gradient_LZ(a_x, **opts)[source]
Return the energy and gradient on the current electronic state
If a surface hopp occurs the velocities will be rescaled accordingly and the energy and gradient on the new surface provided.
- Input arguments:
a_x – positions of the system
- Returns:
e_adiabatic – potential energy g_adiabatic – energy gradient
self.delta_e – energy difference self.delta_g – gradient difference
- optional argument:
nstates_g – number of electronic states requiring analytical gradient state_g – the certain designated electronic states requiring analytical gradient
currently for ab initio analytical gradient method
- state_type – specify the type of electronic state that requires analytical gradient
default: all_electronic_states options: current_electronic_state - for SimulationBox object
- switch_condition(**opts)[source]
Compute initial conditions on the new PES after a hop.
- uses:
self.de_s: energy difference (Vf - Vi) between the two adiabatic states self.dg_s: non-adiabatic coupling gradient.
- Returns: (xnew,vnew,ishop)
xnew: new positions vnew: new velocities ishop: True if switch took place
Implements Eq.(3.44) in Miller and George; JCP 56, 5637 (1972) Implements Eqs.(25,29) in Stine et al. ; JCP 65, 3975 (1976)