diff --git a/examples/electron-hole-compensated/Free_compensate_model_hr.dat b/examples/electron-hole-compensated/Free_compensate_model_hr.dat new file mode 100644 index 00000000..ae280647 --- /dev/null +++ b/examples/electron-hole-compensated/Free_compensate_model_hr.dat @@ -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 diff --git a/examples/electron-hole-compensated/writeHmnR.f90 b/examples/electron-hole-compensated/writeHmnR.f90 new file mode 100644 index 00000000..2bef5c58 --- /dev/null +++ b/examples/electron-hole-compensated/writeHmnR.f90 @@ -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 diff --git a/examples/electron-hole-compensated/wt.in b/examples/electron-hole-compensated/wt.in new file mode 100644 index 00000000..83bd4381 --- /dev/null +++ b/examples/electron-hole-compensated/wt.in @@ -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 +