The Elk Code
 
Loading...
Searching...
No Matches
moddftu.f90
Go to the documentation of this file.
1
2! Copyright (C) 2008 F. Bultmark, F. Cricchio and L. Nordstrom.
3! This file is distributed under the terms of the GNU General Public License.
4! See the file COPYING for license details.
5
6module moddftu
7use modmain
8
9!-----------------------------------------------------------!
10! muffin-tin density and potential matrix variables !
11!-----------------------------------------------------------!
12! maximum angular momentum for muffin-tin density matrix
13integer, parameter :: lmaxdm=3
14integer, parameter :: lmmaxdm=(lmaxdm+1)**2
15! density matrix in each muffin-tin
16complex(8), allocatable :: dmatmt(:,:,:,:,:)
17! tolerance for checking invariance of density matrix under symmetry operations
18real(8) epsdmat
19! potential matrix in each muffin-tin
20complex(8), allocatable :: vmatmt(:,:,:,:,:)
21! potential matrix in spherical coordinates for lmaxi and lmaxo
22complex(4), allocatable :: vmatmti(:,:,:,:,:),vmatmto(:,:,:,:,:)
23! tvmatmt is .true. if the potential matrices are calculated
24logical tvmatmt
25! tvmmt is .true. if the potential matrix for that l and atom is non-zero
26logical, allocatable :: tvmmt(:,:)
27
28!-------------------------!
29! DFT+U variables !
30!-------------------------!
31! type of DFT+U to use (0 = none)
32integer dftu
33! input type for DFT+U calculation (1:5)
34integer inpdftu
35! maximum number of DFT+U entries
36integer, parameter :: maxdftu=10
37! number of DFT+U entries
38integer ndftu
39! species and angular momentum for each entry
40integer isldu(2,maxdftu)
41! U and J values for each entry
42real(8) ujdu(2,maxdftu)
43! DFT+U energy for each atom and entry
44real(8), allocatable :: engyadu(:,:)
45! energy from the DFT+U correction
46real(8) engydu
47! Slater parameters
48real(8) fdu(0:2*lmaxdm,maxdftu)
49! Racah parameters
50real(8) edu(0:lmaxdm,maxdftu)
51! screening length of Yukawa potential to calculate Slater integrals
52real(8) lamdu(maxdftu)
53! initial values of screening length if U is fixed
55! energies to calculate radial functions for Slater integrals
56real(8), allocatable :: efdu(:,:)
57! radial functions to calculate Slater integrals
58real(8), allocatable :: fdufr(:,:,:)
59! fixed value of U for which screening length has to be determined
61
62!---------------------------------!
63! tensor moment variables !
64!---------------------------------!
65! tmwrite is .true. if tensor moments are written out at every s.c. loop
66logical tmwrite
67! fixed tensor moment type
68! 0 : none
69! 1 (-1) : fixed 3-index tensor moment (or just lowering the symmetry)
70integer ftmtype
71! number of fixed tensor moment entries
72integer ntmfix
73! tensor moment indices for each entry:
74! is, ia, l for the species, atom, angular momentum
75! k, p, r, t for the 3-index tensor moment and vector component
76integer, allocatable :: itmfix(:,:)
77! 3-index tensor component with conventional normalisation
78real(8), allocatable :: wkprfix(:)
79! density matrices corresponding to the fixed tensor moments
80complex(8), allocatable :: dmftm(:,:,:,:,:)
81! fixed tensor moment potential matrix
82complex(8), allocatable :: vmftm(:,:,:,:,:)
83! fixed tensor moment step size
84real(8) tauftm
85! tensor moments at t=0 of a TDDFT+U calculations
86real(8), allocatable :: wkpr0(:,:)
87! tm3old is .true. if the tensor moments should be in the old complex convention
88logical tm3old
89
90end module
91
integer, parameter maxdftu
Definition moddftu.f90:36
integer ndftu
Definition moddftu.f90:38
real(8), dimension(0:lmaxdm, maxdftu) edu
Definition moddftu.f90:50
real(8), dimension(0:2 *lmaxdm, maxdftu) fdu
Definition moddftu.f90:48
logical tmwrite
Definition moddftu.f90:66
logical, dimension(:,:), allocatable tvmmt
Definition moddftu.f90:26
integer dftu
Definition moddftu.f90:32
integer, parameter lmmaxdm
Definition moddftu.f90:14
real(8) epsdmat
Definition moddftu.f90:18
real(8), dimension(maxdftu) lamdu0
Definition moddftu.f90:54
real(8), dimension(maxdftu) dudufix
Definition moddftu.f90:60
real(8), dimension(maxdftu) udufix
Definition moddftu.f90:60
complex(4), dimension(:,:,:,:,:), allocatable vmatmto
Definition moddftu.f90:22
real(8), dimension(:,:), allocatable wkpr0
Definition moddftu.f90:86
real(8), dimension(:,:), allocatable engyadu
Definition moddftu.f90:44
real(8), dimension(2, maxdftu) ujdu
Definition moddftu.f90:42
complex(8), dimension(:,:,:,:,:), allocatable dmftm
Definition moddftu.f90:80
integer, dimension(2, maxdftu) isldu
Definition moddftu.f90:40
integer ftmtype
Definition moddftu.f90:70
real(8) engydu
Definition moddftu.f90:46
integer inpdftu
Definition moddftu.f90:34
complex(8), dimension(:,:,:,:,:), allocatable vmatmt
Definition moddftu.f90:20
real(8), dimension(:,:,:), allocatable fdufr
Definition moddftu.f90:58
integer, parameter lmaxdm
Definition moddftu.f90:13
real(8), dimension(:), allocatable wkprfix
Definition moddftu.f90:78
integer, dimension(:,:), allocatable itmfix
Definition moddftu.f90:76
complex(8), dimension(:,:,:,:,:), allocatable dmatmt
Definition moddftu.f90:16
complex(4), dimension(:,:,:,:,:), allocatable vmatmti
Definition moddftu.f90:22
integer ntmfix
Definition moddftu.f90:72
real(8), dimension(:,:), allocatable efdu
Definition moddftu.f90:56
real(8) tauftm
Definition moddftu.f90:84
real(8), dimension(maxdftu) lamdu
Definition moddftu.f90:52
logical tm3old
Definition moddftu.f90:88
logical tvmatmt
Definition moddftu.f90:24
complex(8), dimension(:,:,:,:,:), allocatable vmftm
Definition moddftu.f90:82