CDTK.Dynamics.SurfaceHoppingLZ module

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

Bases: object

Control a trajectory surface-hopping evolution

get_funcE(**opts)[source]

Return the energy function to be used from a SimulationBox object

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.

this gradient may be different in different flavors of switching algorithms. Common conventions are:

dg_s = Grad(Vf - Vi) dg_s = <f| Grad |i> (|i>:electronic wfn)

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)