The Elk Code
 
Loading...
Searching...
No Matches
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
6module modtddft
7
8!-----------------------------------------!
9! TDDFT linear response variables !
10!-----------------------------------------!
11! exchange-correlation kernel type
12integer fxctype(3)
13! parameters for long-range correction (LRC) kernel
14real(8) fxclrc(2)
15! number of independent spin components of the f_xc spin tensor
16integer nscfxc
17! magnetic linear dichroism (MLD) angle between the electric and magnetic fields
18real(8) thetamld
19
20!---------------------------------------------!
21! TDDFT real-time evolution variables !
22!---------------------------------------------!
23! number of laser pulses defining the time-dependent A-field
24integer npulse
25! laser pulse parameters: vector amplitude, frequency, phase, chirp rate,
26! peak time, full-width at half-maximum, spin components
27real(8), allocatable :: pulse(:,:)
28! number of A-field ramps
29integer nramp
30! ramp parameters: vector amplitude, ramp start time, linear, quadratic, cubic,
31! quartic coefficients, spin components
32real(8), allocatable :: ramp(:,:)
33! number of A-field steps
34integer nstep
35! step parameters: vector amplitude, step start and stop times, spin components
36real(8), allocatable :: step(:,:)
37! total simulation time
38real(8) tstime
39! time step length
40real(8) dtimes
41! number of time steps
42integer ntimes
43! starting time step
44integer itimes0
45! current time step
46integer itimes
47! time steps
48real(8), allocatable :: times(:)
49! tdt0 is .true. if the time evolution starts at t=0
50logical tdt0
51! phase defining complex direction of time evolution
52real(8) tdphi
53! number of time steps after which the time-dependent eigenvectors are backed up
54integer ntsbackup
55! tafieldt is .true. if a time-dependent vector potential is applied
56logical tafieldt
57! time-dependent total A-field (external plus induced)
58real(8), allocatable :: afieldt(:,:)
59! tafspt is .true. if the A-field is spin- and time-dependent
60logical tafspt
61! spin- and time-dependent A-field
62real(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
65logical tbaspat
66! induced A-field and its time derivative at the current time step
67real(8) afindt(3,0:1)
68! induced A-field parameters
69real(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
72logical tafindt
73! electric field at current time step
74real(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
78integer ntswrite(2)
79! ttswrite is .true. if observables are to be written for the current time step
80logical ttswrite
81! static charge density
82real(8), allocatable :: rhosmt(:,:,:),rhosir(:,:)
83! total static charge
84real(8) chgstot(3)
85! muffin-tin static charge
86real(8), allocatable :: chgsmt(:,:)
87! gradient of the muffin-tin Coulomb potential of the nucleus and static density
88complex(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
96real(8) rndevt0
97! number of time steps between force calculations
98integer ntsforce
99! ttsforce is .true. if forces are calculated for the current time step
100logical ttsforce
101! total atomic forces at each time step
102real(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
105integer 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
108logical jtconst0
109
110end module
111
integer nscfxc
Definition modtddft.f90:16
real(8) dtimes
Definition modtddft.f90:40
logical tdjr2d
Definition modtddft.f90:93
logical tdrho1d
Definition modtddft.f90:91
logical tafieldt
Definition modtddft.f90:56
logical tdrho3d
Definition modtddft.f90:91
logical tdxrmk
Definition modtddft.f90:94
real(8) tdphi
Definition modtddft.f90:52
real(8), dimension(:,:,:), allocatable rhosmt
Definition modtddft.f90:82
real(8), dimension(3, 0:1) afindt
Definition modtddft.f90:67
logical ttswrite
Definition modtddft.f90:80
integer, dimension(2) ntswrite
Definition modtddft.f90:78
integer ntsorth
Definition modtddft.f90:105
logical tafspt
Definition modtddft.f90:60
real(8), dimension(:,:), allocatable ramp
Definition modtddft.f90:32
real(8), dimension(:), allocatable times
Definition modtddft.f90:48
integer, dimension(3) fxctype
Definition modtddft.f90:12
logical tdlsj
Definition modtddft.f90:94
integer ntsforce
Definition modtddft.f90:98
real(8), dimension(:,:), allocatable afieldt
Definition modtddft.f90:58
real(8), dimension(:,:), allocatable chgsmt
Definition modtddft.f90:86
integer ntsbackup
Definition modtddft.f90:54
logical tdt0
Definition modtddft.f90:50
logical tdmag2d
Definition modtddft.f90:92
logical tdrho2d
Definition modtddft.f90:91
real(8), dimension(:,:), allocatable rhosir
Definition modtddft.f90:82
real(8), dimension(:,:), allocatable step
Definition modtddft.f90:36
real(8) thetamld
Definition modtddft.f90:18
integer npulse
Definition modtddft.f90:24
integer nramp
Definition modtddft.f90:29
logical tddos
Definition modtddft.f90:94
logical tafindt
Definition modtddft.f90:72
real(8) tstime
Definition modtddft.f90:38
logical tdjr3d
Definition modtddft.f90:93
logical ttsforce
Definition modtddft.f90:100
integer itimes0
Definition modtddft.f90:44
logical tdjr1d
Definition modtddft.f90:93
real(8), dimension(:,:,:), allocatable forcet
Definition modtddft.f90:102
real(8), dimension(:,:,:), allocatable afspt
Definition modtddft.f90:62
integer itimes
Definition modtddft.f90:46
logical tdmag1d
Definition modtddft.f90:92
logical jtconst0
Definition modtddft.f90:108
real(8), dimension(3) efieldt
Definition modtddft.f90:74
logical tdmag3d
Definition modtddft.f90:92
complex(8), dimension(:,:,:), allocatable gvnsmt
Definition modtddft.f90:88
real(8), dimension(0:2) afindpm
Definition modtddft.f90:69
real(8), dimension(3) chgstot
Definition modtddft.f90:84
real(8), dimension(:,:), allocatable pulse
Definition modtddft.f90:27
real(8) rndevt0
Definition modtddft.f90:96
logical tbaspat
Definition modtddft.f90:65
integer ntimes
Definition modtddft.f90:42
logical tdjtk
Definition modtddft.f90:94
real(8), dimension(2) fxclrc
Definition modtddft.f90:14
integer nstep
Definition modtddft.f90:34