Skip to content

Commit

Permalink
prepare one version for Wannier90 tutorial 2022
Browse files Browse the repository at this point in the history
  • Loading branch information
quanshengwu committed Apr 10, 2022
1 parent 8eafb6e commit 1526a0c
Show file tree
Hide file tree
Showing 3 changed files with 217 additions and 0 deletions.
32 changes: 32 additions & 0 deletions examples/electron-hole-compensated/Free_compensate_model_hr.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
2-band electron-hole compensated model
2
7
1 1 1 1 1 1 1
0 0 0 1 1 5.00000000 0.00000000
0 0 0 1 2 0.00000000 0.00000000
0 0 0 2 1 0.00000000 0.00000000
0 0 0 2 2 -5.00000000 0.00000000
1 0 0 1 1 -1.00000000 0.00000000
1 0 0 1 2 0.00000000 0.00000000
1 0 0 2 1 0.00000000 0.00000000
1 0 0 2 2 -1.00000000 0.00000000
-1 0 0 1 1 -1.00000000 0.00000000
-1 0 0 1 2 0.00000000 0.00000000
-1 0 0 2 1 0.00000000 0.00000000
-1 0 0 2 2 -1.00000000 0.00000000
0 1 0 1 1 -1.00000000 0.00000000
0 1 0 1 2 0.00000000 0.00000000
0 1 0 2 1 0.00000000 0.00000000
0 1 0 2 2 1.00000000 0.00000000
0 -1 0 1 1 -1.00000000 0.00000000
0 -1 0 1 2 0.00000000 0.00000000
0 -1 0 2 1 0.00000000 0.00000000
0 -1 0 2 2 1.00000000 0.00000000
0 0 1 1 1 -1.00000000 0.00000000
0 0 1 1 2 0.00000000 0.00000000
0 0 1 2 1 0.00000000 0.00000000
0 0 1 2 2 1.00000000 0.00000000
0 0 -1 1 1 -1.00000000 0.00000000
0 0 -1 1 2 0.00000000 0.00000000
0 0 -1 2 1 0.00000000 0.00000000
0 0 -1 2 2 1.00000000 0.00000000
113 changes: 113 additions & 0 deletions examples/electron-hole-compensated/writeHmnR.f90
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
program writeHmnR

!> two band model
!> H11(k)= -1 +2(mx+my+mz)- 2mx*cos(kx)- 2*my*cos(ky)- 2*mz*cos(kz)
!> H22(k)= 1 -2(mx+my+mz)- 2mx*cos(kx)+ 2*my*cos(ky)+ 2*mz*cos(kz)
implicit none

integer, parameter :: dp=kind(1d0)
complex(dp), parameter :: zi= (0d0, 1d0)
complex(dp), parameter :: zzero= (0d0, 0d0)

integer :: i, j
integer :: ir
integer :: nwann

!> arrays for hamiltonian storage
integer :: nrpts
integer, allocatable :: ndegen(:)
integer, allocatable :: irvec(:, :)
complex(dp), allocatable :: hmnr(:, :, :)

!> three lattice constants
real(dp) :: mx, my, mz


mx=1d0
my=1d0
mz=1d0

nwann= 2
nrpts=17
allocate(irvec(3, nrpts))
allocate(ndegen(nrpts))
allocate(hmnr(nwann, nwann, nrpts))
irvec=0
ndegen=1
hmnr= zzero


! 0 0 0
ir= 1
irvec(1, ir)= 0
irvec(2, ir)= 0
irvec(3, ir)= 0
hmnr(1, 1, ir)= -1.d0+ 2d0*(mx+my+mz)
hmnr(2, 2, ir)= 1.d0- 2d0*(mx+my+mz)

!1 0 0
ir= ir+ 1
irvec(1, ir)= 1
irvec(2, ir)= 0
irvec(3, ir)= 0
hmnr(1, 1, ir)=-mx
hmnr(2, 2, ir)=-mx

!-1 0 0
ir= ir+ 1
irvec(1, ir)=-1
irvec(2, ir)= 0
irvec(3, ir)= 0
hmnr(1, 1, ir)=-mx
hmnr(2, 2, ir)=-mx

! 0 1 0
ir= ir+ 1
irvec(1, ir)= 0
irvec(2, ir)= 1
irvec(3, ir)= 0
hmnr(1, 1, ir)=-my
hmnr(2, 2, ir)= my

!0 -1 0
ir= ir+ 1
irvec(1, ir)= 0
irvec(2, ir)=-1
irvec(3, ir)= 0
hmnr(1, 1, ir)=-my
hmnr(2, 2, ir)= my

! 0 0 1
ir= ir+ 1
irvec(1, ir)= 0
irvec(2, ir)= 0
irvec(3, ir)= 1
hmnr(1, 1, ir)=-mz
hmnr(2, 2, ir)= mz

! 0 0 -1
ir= ir+ 1
irvec(1, ir)= 0
irvec(2, ir)= 0
irvec(3, ir)=-1
hmnr(1, 1, ir)=-mz
hmnr(2, 2, ir)= mz

nrpts = ir

!> write to new_hr.dat
open(unit=105, file='Free_compensate_model_hr.dat')
write(105, *)'2-band electron-hole compensated model'
write(105, *)nwann
write(105, *)nrpts
write(105, '(15I5)')(ndegen(i), i=1, nrpts)
do ir=1, nrpts
do i=1, nwann
do j=1, nwann
write(105, '(5I5, 2f16.8)')irvec(:, ir), i, j, HmnR(i, j, ir)
enddo
enddo
enddo
close(105)

end ! end of program
72 changes: 72 additions & 0 deletions examples/electron-hole-compensated/wt.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
&TB_FILE
Hrfile = 'Free_compensate_model_hr.dat'
/


&CONTROL
BulkBand_calc = T ! band structure calculation
BulkFS_calc = T ! Fermi surface calculation
Boltz_OHE_calc = T ! ordinary magnetoresistance
Symmetry_Import_calc = F ! impose the symmetry. please set it to be true for magnetoresistance calculation
/

&SYSTEM
NumOccupied = 1 ! Number of Occupied bands, set it even not used
SOC = 0 ! without soc : SOC=0; with soc : SOC=1
E_FERMI = 0.0000 ! e-fermi
Btheta=0, Bphi= 90 ! magnetic field direction, Btheta is the angle with z axial, Bphi is the angle with respect to x axial in the x-y plane
/

&PARAMETERS
OmegaNum = 1 ! omega number
OmegaMin = 0.00 ! energy interval
OmegaMax = 0.00 ! energy interval
Nk1 = 68 ! number k points
Nk2 = 68 ! number k points
Nk3 = 68 ! number k points
BTauNum= 100 ! Number of B*tau we calculate
BTauMax = 40.0 ! The maximum B*tau, starting from Btau=0.
Tmin = 30 ! Temperature in Kelvin
Tmax = 330 ! Temperature in Kelvin
NumT = 11 ! number temperature we calculate. T=Tmin+(Tmax-Tmin)/(NumT-1)
/

LATTICE
Angstrom
2 0 0
0 2 0
0 0 2

ATOM_POSITIONS
1 ! number of atoms for projectors
Direct ! Direct or Cartisen coordinate
X 0 0 0

PROJECTORS
2 ! number of projectors
X s s

SURFACE ! TaAs2 conventional (010) surface
1 0 0
0 1 0
0 0 1

KPATH_BULK ! k point path
5 ! number of k line only for bulk band
X 0.50000 0.00000 0.00000 G 0.00000 0.00000 0.00000
G 0.00000 0.00000 0.00000 Z 0.00000 0.00000 0.50000
Z 0.00000 0.00000 0.50000 L 0.50000 0.50000 0.50000
L 0.50000 0.50000 0.50000 Y 0. 0000 0.50000 0.00000
Y 0.00000 0.50000 0.00000 G 0.00000 0.00000 0.00000

KPLANE_BULK
-0.50 -0.50 -0.00 ! Original point for 3D k plane
1.00 0.00 0.00 ! The first vector to define 3d k space plane
0.00 1.00 0.00 ! The second vector to define 3d k space plane

KCUBE_BULK
-0.50 -0.50 -0.50 ! Original point for 3D k plane
1.00 0.00 0.00 ! The first vector to define 3d k space plane
0.00 1.00 0.00 ! The second vector to define 3d k space plane
0.00 0.00 1.00 ! The third vector to define 3d k cube

0 comments on commit 1526a0c

Please sign in to comment.