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