diff --git a/src/surfacehop.F90 b/src/surfacehop.F90 index e329019a..b3f3fe0e 100644 --- a/src/surfacehop.F90 +++ b/src/surfacehop.F90 @@ -61,8 +61,9 @@ module mod_sh integer :: nac_accu2 = 5 ! Decoherence correction parameter (a.u.) - ! To turn off decoherence correction, set decoh_alpha = 0.0D0 real(DP) :: decoh_alpha = 0.1D0 + ! To turn off decoherence correction, set decoh = .false. + logical :: decoh = .true. ! Compute NACME only if states are less then deltaE apart (eV) ! The default value (5 eV) is very conservative. @@ -99,8 +100,8 @@ module mod_sh ! of states that are calculated but ignored. integer :: ignore_state = 0 - namelist /sh/ istate_init, nstate, substep, deltae, integ, couplings, nohop, phase, decoh_alpha, popthr, ignore_state, & - nac_accu1, nac_accu2, popsumthr, energydifthr, energydriftthr, velocity_rescaling, revmom, & + namelist /sh/ istate_init, nstate, substep, deltae, integ, couplings, nohop, phase, decoh, decoh_alpha, popthr, & + ignore_state, nac_accu1, nac_accu2, popsumthr, energydifthr, energydriftthr, velocity_rescaling, revmom, & dE_S0S1_thr, correct_decoherence save @@ -298,7 +299,10 @@ subroutine check_sh_parameters() write (stderr, '(A,I0)') 'Computing NACME only with default accuracy 10^-', nac_accu1 end if - if (decoh_alpha == 0.0D0) then + if (decoh) then + write (stdout, '(A)') "Using energy decoherence correction by Granucci and Persico." + write (stdout, '(A,F10.6)') "Decoherence aplha parameter: ", decoh_alpha + else write (stdout, '(A)') "Turning OFF decoherence correction" end if @@ -820,7 +824,7 @@ subroutine surfacehop(x, y, z, vx, vy, vz, vx_old, vy_old, vz_old, dt, eclas) end if ! Apply decoherence correction from Persico et al - if (decoh_alpha > 0) then + if (decoh) then Ekin = ekin_v(vx_int, vy_int, vz_int) if (Ekin > 1.0D-4) then ! Decoherence diverges for zero velocities diff --git a/tests/SH_EULER/input.in b/tests/SH_EULER/input.in index db7f02d2..6fad6815 100644 --- a/tests/SH_EULER/input.in +++ b/tests/SH_EULER/input.in @@ -6,7 +6,7 @@ deltae=100.0, ! maximum energy difference [eV], for which we calculate NA coupl integ='euler', ! integrator for ESCHE:euler,butcher or rk4 couplings='analytic', ! non-adiabatic coupling terms 'analytic', 'baeck-an', 'none' nohop=0, ! 1 - hopping not allowed (default=0) -decoh_alpha=0.0 ! parameter for decoherence correction +decoh=.false. ! parameter for decoherence correction popthr=0.0 /