Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
quanshengwu committed May 18, 2024
1 parent 1606d0a commit f3fefe6
Show file tree
Hide file tree
Showing 7 changed files with 361 additions and 22 deletions.
123 changes: 123 additions & 0 deletions examples/BHZ-model/BHZ_hr_gen-case1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
#!/bin/python3
import numpy as np
import cmath

# The Hamiltonian is
# ( M-Bk^2 Delta_0+A*k+ )
# ( Delta_0+A*k_ -M+Bk^2 )
# where k^2=kx^2+ky^2

# Case I, QSHE with band inversion and no trivial hybridization
# Delta_0=0, M*B>0, |A|>0

# Case I, QSHE with band inversion and with trivial and nontrivial hybridization
# Delta_0=0.5, M*B>0, |A|>0


# from the kp to TB we use sustitution
# k->sin(k)
# k^2->2(1-cos(k))

# Constants
dp = np.float64
pi = np.arctan(1) * 4
zi = 1j

# Lattice constants
M = 2.0
B = 1.0
A = 1.0
Delta_0= 0.0


# Number of Wannier functions and R points
num_wann = 4
nrpts = 7

# R coordinates
Irvec = np.zeros((3, nrpts), dtype=int)

# Hamiltonian m,n are band indexes
HmnR = np.zeros((num_wann, num_wann, nrpts), dtype=complex)

# No of degeneracy of R point
ndegen = np.ones(nrpts, dtype=int)

# Initialization of matrices
Irvec[:, :] = 0
HmnR[:, :, :] = 0.0

# 0 0 0
ir = 0
Irvec[:, ir] = [0, 0, 0]
HmnR[0, 0, ir] = M - 4 * B
HmnR[1, 1, ir] = -M + 4 * B
HmnR[2, 2, ir] = M - 4 * B
HmnR[3, 3, ir] = -M + 4 * B
HmnR[0, 1, ir] = Delta_0
HmnR[1, 0, ir] = Delta_0
HmnR[2, 3, ir] = Delta_0
HmnR[3, 2, ir] = Delta_0

# 1 0
ir = 1
Irvec[:, ir] = [1, 0, 0]
HmnR[0, 0, ir] = B
HmnR[1, 1, ir] = -B
HmnR[2, 2, ir] = B
HmnR[3, 3, ir] = -B
HmnR[0, 1, ir] =-0.5*zi*A
HmnR[1, 0, ir] =-0.5*zi*A
HmnR[2, 3, ir] = 0.5*zi*A
HmnR[3, 2, ir] = 0.5*zi*A

# 0 1
ir = 2
Irvec[:, ir] = [0, 1, 0]
HmnR[0, 0, ir] = B
HmnR[1, 1, ir] = -B
HmnR[2, 2, ir] = B
HmnR[3, 3, ir] = -B
HmnR[0, 1, ir]= -A/2
HmnR[1, 0, ir]= A/2
HmnR[2, 3, ir]= -A/2
HmnR[3, 2, ir]= A/2


# -1 0
ir = 3
Irvec[:, ir] = [-1, 0, 0]
HmnR[0, 0, ir] = B
HmnR[1, 1, ir] = -B
HmnR[2, 2, ir] = B
HmnR[3, 3, ir] = -B
HmnR[0, 1, ir]= 0.5*zi*A
HmnR[1, 0, ir]= 0.5*zi*A
HmnR[2, 3, ir]=-0.5*zi*A
HmnR[3, 2, ir]=-0.5*zi*A


# 0 -1
ir = 4
Irvec[:, ir] = [0, -1, 0]
HmnR[0, 0, ir] = B
HmnR[1, 1, ir] = -B
HmnR[2, 2, ir] = B
HmnR[3, 3, ir] = -B
HmnR[0, 1, ir]= A/2
HmnR[1, 0, ir]= -A/2
HmnR[2, 3, ir]= A/2
HmnR[3, 2, ir]= -A/2

nrpts= ir+1
# Writing to a file
with open('BHZ_hr.dat', 'w') as file:
file.write('4-band of BHZ model\n')
file.write('4 !num_wann \n')
file.write(f'{nrpts} ! nrpts\n')
file.write(' '.join(f'{x:5d}' for x in ndegen) + '\n')
for ir in range(nrpts):
for i in range(4):
for j in range(4):
file.write(f"{Irvec[0, ir]:5d}{Irvec[1, ir]:5d}{Irvec[2, ir]:5d}{i+1:5d}{j+1:5d} {HmnR[i, j, ir].real:16.8f} {HmnR[i, j, ir].imag:16.8f}\n")

123 changes: 123 additions & 0 deletions examples/BHZ-model/BHZ_hr_gen-case2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
#!/bin/python3
import numpy as np
import cmath

# The Hamiltonian is
# ( M-Bk^2 Delta_0+A*k+ )
# ( Delta_0+A*k_ -M+Bk^2 )
# where k^2=kx^2+ky^2

# Case I, QSHE with band inversion and no trivial hybridization
# Delta_0=0, M*B>0, |A|>0

# Case I, QSHE with band inversion and with trivial and nontrivial hybridization
# Delta_0=0.5, M*B>0, |A|>0


# from the kp to TB we use sustitution
# k->sin(k)
# k^2->2(1-cos(k))

# Constants
dp = np.float64
pi = np.arctan(1) * 4
zi = 1j

# Lattice constants
M = 2.0
B = 1.0
A = 1.0
Delta_0= 0.5


# Number of Wannier functions and R points
num_wann = 4
nrpts = 7

# R coordinates
Irvec = np.zeros((3, nrpts), dtype=int)

# Hamiltonian m,n are band indexes
HmnR = np.zeros((num_wann, num_wann, nrpts), dtype=complex)

# No of degeneracy of R point
ndegen = np.ones(nrpts, dtype=int)

# Initialization of matrices
Irvec[:, :] = 0
HmnR[:, :, :] = 0.0

# 0 0 0
ir = 0
Irvec[:, ir] = [0, 0, 0]
HmnR[0, 0, ir] = M - 4 * B
HmnR[1, 1, ir] = -M + 4 * B
HmnR[2, 2, ir] = M - 4 * B
HmnR[3, 3, ir] = -M + 4 * B
HmnR[0, 1, ir] = Delta_0
HmnR[1, 0, ir] = Delta_0
HmnR[2, 3, ir] = Delta_0
HmnR[3, 2, ir] = Delta_0

# 1 0
ir = 1
Irvec[:, ir] = [1, 0, 0]
HmnR[0, 0, ir] = B
HmnR[1, 1, ir] = -B
HmnR[2, 2, ir] = B
HmnR[3, 3, ir] = -B
HmnR[0, 1, ir] =-0.5*zi*A
HmnR[1, 0, ir] =-0.5*zi*A
HmnR[2, 3, ir] = 0.5*zi*A
HmnR[3, 2, ir] = 0.5*zi*A

# 0 1
ir = 2
Irvec[:, ir] = [0, 1, 0]
HmnR[0, 0, ir] = B
HmnR[1, 1, ir] = -B
HmnR[2, 2, ir] = B
HmnR[3, 3, ir] = -B
HmnR[0, 1, ir]= -A/2
HmnR[1, 0, ir]= A/2
HmnR[2, 3, ir]= -A/2
HmnR[3, 2, ir]= A/2


# -1 0
ir = 3
Irvec[:, ir] = [-1, 0, 0]
HmnR[0, 0, ir] = B
HmnR[1, 1, ir] = -B
HmnR[2, 2, ir] = B
HmnR[3, 3, ir] = -B
HmnR[0, 1, ir]= 0.5*zi*A
HmnR[1, 0, ir]= 0.5*zi*A
HmnR[2, 3, ir]=-0.5*zi*A
HmnR[3, 2, ir]=-0.5*zi*A


# 0 -1
ir = 4
Irvec[:, ir] = [0, -1, 0]
HmnR[0, 0, ir] = B
HmnR[1, 1, ir] = -B
HmnR[2, 2, ir] = B
HmnR[3, 3, ir] = -B
HmnR[0, 1, ir]= A/2
HmnR[1, 0, ir]= -A/2
HmnR[2, 3, ir]= A/2
HmnR[3, 2, ir]= -A/2

nrpts= ir+1
# Writing to a file
with open('BHZ_hr.dat', 'w') as file:
file.write('4-band of BHZ model\n')
file.write('4 !num_wann \n')
file.write(f'{nrpts} ! nrpts\n')
file.write(' '.join(f'{x:5d}' for x in ndegen) + '\n')
for ir in range(nrpts):
for i in range(4):
for j in range(4):
file.write(f"{Irvec[0, ir]:5d}{Irvec[1, ir]:5d}{Irvec[2, ir]:5d}{i+1:5d}{j+1:5d} {HmnR[i, j, ir].real:16.8f} {HmnR[i, j, ir].imag:16.8f}\n")

9 changes: 9 additions & 0 deletions examples/BHZ-model/wt.in
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,17 @@ Hrfile = "BHZ_hr.dat"
BulkBand_calc = T ! bulk band structure
SlabBand_calc = T ! slab band structure
SHC_calc = T ! spin Hall conductivity
AHC_calc = T ! anomalous Hall conductivity
Wilsonloop_calc = T ! Wilson loop
/

&SYSTEM
SOC = 1 ! soc
E_FERMI = 0 ! e-fermi
NumOccupied = 2
Bx= 0, By= 0, Bz= 1 ! Bx By Bz
Add_Zeeman_Field = T
Zeeman_energy_in_eV = 0.5 ! in eV
/

&PARAMETERS
Expand Down Expand Up @@ -58,6 +62,11 @@ KPATH_BULK ! k point path
X 0.50000 0.00000 0.00000 G 0.00000 0.00000 0.00000
G 0.00000 0.00000 0.00000 Y 0.00000 0.50000 0.50000

KPLANE_BULK
0 0 0
1 0 0
0 0.5 0

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
Expand Down
66 changes: 66 additions & 0 deletions examples/BHZ-model/wt.in-normal
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
&TB_FILE
Hrfile = "BHZ_hr.dat"
/

!> flags to control different functionalities
&CONTROL
BulkBand_calc = T ! bulk band structure
SlabBand_calc = T ! slab band structure
SHC_calc = T ! spin Hall conductivity
Wilsonloop_calc = T ! Wilson loop
/

&SYSTEM
SOC = 1 ! soc
E_FERMI = 0 ! e-fermi
NumOccupied = 2
/

&PARAMETERS
Fermi_broadening = 0.001 ! infinite small value, like brodening
iso_energy = 0.0 ! energy for calculate Fermi Arc
OmegaNum = 400 ! omega number
OmegaMin = -8.0 ! energy interval
OmegaMax = 8.0 ! energy interval
Nk1 = 60 ! number k points
Nk2 = 60 ! number k points
Nk3 = 2 ! number k points
/

LATTICE
Angstrom
3 0 0
0 3 0
0 0 10

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

PROJECTORS
2 ! number of projectors
C s pz

KPATH_SLAB
3 ! numker of k line for 2D case
-X 0. -0.5 G 0.0 0.0 ! k path for 2D case
G 0.0 0.0 X 0.0 0.5
X 0.0 0.50 M 0.5 0.5 ! k path for 2D case

SURFACE ! See doc for details
0 0 1
1 0 0
0 1 0

KPATH_BULK ! k point path
2 ! 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 Y 0.00000 0.50000 0.50000

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

Loading

0 comments on commit f3fefe6

Please sign in to comment.