pwdft
0.1
PW-DFT code for education
|
Go to the documentation of this file.
29 integer,
allocatable,
save ::
tetra(:,:)
30 real(8),
allocatable,
save ::
kvec(:,:)
44 real(8) :: occ(nbnd,nk)
45 complex(8) :: psir(g_rh%nr)
49 rho(1:g_rh%nr) = 0.0d0
53 rho(1:g_rh%nr) =
rho(1:g_rh%nr) &
54 & + dble(conjg(psir(1:g_rh%nr))*psir(1:g_rh%nr))*occ(ibnd,ik)*2.0d0
67 use libtetrabz,
only : libtetrabz_dos, libtetrabz_intdos
69 integer,
parameter :: ne = 500
70 integer :: ie, fo = 20
71 real(8) :: e0(ne), dos(ne), intdos(ne), wght(ne,nbnd,nk), &
74 emax = maxval(
eval(1:nbnd,1:nk))
75 emin = minval(
eval(1:nbnd,1:nk))
76 de = (emax - emin) / dble(ne)
78 e0(ie) = emin + de * (ie -1)
84 dos(ie) = sum(wght(ie,1:nbnd,1:nk))
90 intdos(ie) = sum(wght(ie,1:nbnd,1:nk))
93 write(*,*)
" Output dos.dat"
94 open(fo, file =
"dos.dat")
96 write(fo,*)
"# Energy[eV] DOS[eV^-1] IntDOS"
99 write(fo,*) (e0(ie)-
ef)*
htr2ev, dos(ie)*2.0d0/
htr2ev, intdos(ie)*2.0d0
integer, dimension(:,:), allocatable, save tetra
real(8), dimension(:), allocatable rho
(g_rhnr) Charge density
real(8), save ef
Fermi energy [Htr].
complex(8), dimension(:,:,:), allocatable, save evec
(g_wfnpw,nbnd,nk) Kohn-Sham eigenvector (orbital)
integer, save nbnd
Number of bands.
integer, dimension(3), save kgrd
real(8), dimension(:,:), allocatable, save eval
(nbnd,nk) Kohn-Sham eigenvalue (energy)
real(8), parameter htr2ev
real(8), dimension(3, 3), save bvec
Unit reciplocal lattice vector [Bohr^-1].
real(8), save nelec
Number of electrons per u.c.
subroutine fft_g2r_w(wfG, wfR)
Uncompress -> W(G) e^{iGr} -> w(r)
real(8), dimension(:,:), allocatable, save kvec
subroutine ksum_dos()
DOS.