The Elk Code
modtddft.f90
Go to the documentation of this file.
1 
2 ! Copyright (C) 2010 J. K. Dewhurst, S. Sharma and E. K. U. Gross.
3 ! This file is distributed under the terms of the GNU General Public License.
4 ! See the file COPYING for license details.
5 
6 module modtddft
7 
8 !-----------------------------------------!
9 ! TDDFT linear response variables !
10 !-----------------------------------------!
11 ! exchange-correlation kernel type
12 integer fxctype(3)
13 ! parameters for long-range correction (LRC) kernel
14 real(8) fxclrc(2)
15 ! number of independent spin components of the f_xc spin tensor
16 integer nscfxc
17 ! magnetic linear dichroism (MLD) angle between the electric and magnetic fields
18 real(8) thetamld
19 
20 !---------------------------------------------!
21 ! TDDFT real-time evolution variables !
22 !---------------------------------------------!
23 ! number of laser pulses defining the time-dependent A-field
24 integer npulse
25 ! laser pulse parameters: vector amplitude, frequency, phase, chirp rate,
26 ! peak time, full-width at half-maximum, spin components
27 real(8), allocatable :: pulse(:,:)
28 ! number of A-field ramps
29 integer nramp
30 ! ramp parameters: vector amplitude, ramp start time, linear, quadratic, cubic,
31 ! quartic coefficients, spin components
32 real(8), allocatable :: ramp(:,:)
33 ! number of A-field steps
34 integer nstep
35 ! step parameters: vector amplitude, step start and stop times, spin components
36 real(8), allocatable :: step(:,:)
37 ! total simulation time
38 real(8) tstime
39 ! time step length
40 real(8) dtimes
41 ! number of time steps
42 integer ntimes
43 ! starting time step
44 integer itimes0
45 ! current time step
46 integer itimes
47 ! time steps
48 real(8), allocatable :: times(:)
49 ! tdt0 is .true. if the time evolution starts at t=0
50 logical tdt0
51 ! phase defining complex direction of time evolution
52 real(8) tdphi
53 ! number of time steps after which the time-dependent eigenvectors are backed up
54 integer ntsbackup
55 ! tafieldt is .true. if a time-dependent vector potential is applied
56 logical tafieldt
57 ! time-dependent total A-field (external plus induced)
58 real(8), allocatable :: afieldt(:,:)
59 ! tafspt is .true. if the A-field is spin- and time-dependent
60 logical tafspt
61 ! spin- and time-dependent A-field
62 real(8), allocatable :: afspt(:,:,:)
63 ! tbaspat is .true. if the effective magnetic field B = 1/c²((Aₛ)ᵗA)⋅σ should be
64 ! added to the time-dependent Hamiltonian
65 logical tbaspat
66 ! induced A-field and its time derivative at the current time step
67 real(8) afindt(3,0:1)
68 ! induced A-field parameters
69 real(8) afindpm(0:2)
70 ! if tafindt is .true. then the induced A-field is determined from Maxwell's
71 ! equation and added to the total
72 logical tafindt
73 ! electric field at current time step
74 real(8) efieldt(3)
75 ! observables are written to file every ntswrite(1) time steps; this begins
76 ! at or after time step ntswrite(2); writing occurs at the first time step
77 ! irrespective of ntswrite
78 integer ntswrite(2)
79 ! ttswrite is .true. if observables are to be written for the current time step
80 logical ttswrite
81 ! static charge density
82 real(8), allocatable :: rhosmt(:,:,:),rhosir(:,:)
83 ! total static charge
84 real(8) chgstot(3)
85 ! muffin-tin static charge
86 real(8), allocatable :: chgsmt(:,:)
87 ! gradient of the muffin-tin Coulomb potential of the nucleus and static density
88 complex(8), allocatable :: gvnsmt(:,:,:)
89 ! the following variables are .true. if the corresponding quantities are to be
90 ! written every ntswrite time steps
95 ! magnitude of complex numbers added to initial eigenvectors
96 real(8) rndevt0
97 ! number of time steps between force calculations
98 integer ntsforce
99 ! ttsforce is .true. if forces are calculated for the current time step
100 logical ttsforce
101 ! total atomic forces at each time step
102 real(8), allocatable :: forcet(:,:,:)
103 ! number of time steps after which the time-dependent Kohn-Sham orbitals are
104 ! made strictly orthogonal using a singular value decomposition
105 integer ntsorth
106 ! jtconst0 is .true. if the constant part of J(t) should be set to zero when
107 ! calculating the dielectric function; this effectively removes the Drude term
108 logical jtconst0
109 
110 end module
111 
logical ttsforce
Definition: modtddft.f90:100
real(8), dimension(:,:,:), allocatable forcet
Definition: modtddft.f90:102
integer ntsorth
Definition: modtddft.f90:105
logical tdlsj
Definition: modtddft.f90:94
integer ntimes
Definition: modtddft.f90:42
complex(8), dimension(:,:,:), allocatable gvnsmt
Definition: modtddft.f90:88
real(8), dimension(:,:), allocatable ramp
Definition: modtddft.f90:32
real(8) rndevt0
Definition: modtddft.f90:96
logical tdmag1d
Definition: modtddft.f90:92
logical tafindt
Definition: modtddft.f90:72
logical tafieldt
Definition: modtddft.f90:56
logical tdrho3d
Definition: modtddft.f90:91
logical tdxrmk
Definition: modtddft.f90:94
logical tdmag3d
Definition: modtddft.f90:92
integer nramp
Definition: modtddft.f90:29
logical tdmag2d
Definition: modtddft.f90:92
logical tdrho1d
Definition: modtddft.f90:91
logical tdjtk
Definition: modtddft.f90:94
logical tbaspat
Definition: modtddft.f90:65
integer nstep
Definition: modtddft.f90:34
real(8), dimension(3, 0:1) afindt
Definition: modtddft.f90:67
logical tdjr2d
Definition: modtddft.f90:93
real(8), dimension(2) fxclrc
Definition: modtddft.f90:14
real(8), dimension(:,:), allocatable rhosir
Definition: modtddft.f90:82
integer ntsforce
Definition: modtddft.f90:98
integer nscfxc
Definition: modtddft.f90:16
logical tdrho2d
Definition: modtddft.f90:91
integer, dimension(2) ntswrite
Definition: modtddft.f90:78
logical jtconst0
Definition: modtddft.f90:108
real(8), dimension(:,:), allocatable pulse
Definition: modtddft.f90:27
logical tafspt
Definition: modtddft.f90:60
real(8), dimension(:,:), allocatable afieldt
Definition: modtddft.f90:58
real(8), dimension(:,:), allocatable step
Definition: modtddft.f90:36
real(8), dimension(:), allocatable times
Definition: modtddft.f90:48
real(8), dimension(0:2) afindpm
Definition: modtddft.f90:69
integer itimes
Definition: modtddft.f90:46
real(8) dtimes
Definition: modtddft.f90:40
real(8), dimension(:,:), allocatable chgsmt
Definition: modtddft.f90:86
logical tdjr3d
Definition: modtddft.f90:93
integer itimes0
Definition: modtddft.f90:44
real(8), dimension(3) chgstot
Definition: modtddft.f90:84
integer ntsbackup
Definition: modtddft.f90:54
logical tdt0
Definition: modtddft.f90:50
logical ttswrite
Definition: modtddft.f90:80
logical tdjr1d
Definition: modtddft.f90:93
logical tddos
Definition: modtddft.f90:94
integer, dimension(3) fxctype
Definition: modtddft.f90:12
real(8) tdphi
Definition: modtddft.f90:52
real(8), dimension(3) efieldt
Definition: modtddft.f90:74
real(8) tstime
Definition: modtddft.f90:38
real(8) thetamld
Definition: modtddft.f90:18
integer npulse
Definition: modtddft.f90:24
real(8), dimension(:,:,:), allocatable afspt
Definition: modtddft.f90:62
real(8), dimension(:,:,:), allocatable rhosmt
Definition: modtddft.f90:82