Dear professionals,  I am a beginner and I have encountered a problem with my 
Haldane model. The band structure I obtained with this parameter is different 
from the ones obtained by others. I am not sure where the error lies and I 
would appreciate it if you could help me look into it.  Thank you for your time 
and assistance. I am looking forward to hearing from you.  

my codes are as follows:

import kwant
import numpy as np
from math import pi, sqrt, tanh
from matplotlib import pyplot 
#HIDDEN_BEGIN_makesyst
Haldane = kwant.lattice.honeycomb()
a, b = Haldane.sublattices
 
L=10

W=20

M=2/3
t=1
t2=1/3
phi=np.pi/4
 
def rec(pos):
    x, y = pos
    return 0<=x<=L and 0<=y<=W
 
syst = kwant.Builder()
syst[Haldane.shape(rec, (0, 0))] = M
syst[Haldane.neighbors()] = t

# add second neighbours hoppings
syst[Haldane.a.neighbors()] =  t2*np.exp(1j*phi)
syst[Haldane.b.neighbors()] =  t2*np.exp(-1j*phi)


syst.eradicate_dangling()      



sym0 = kwant.TranslationalSymmetry(Haldane.vec((-1, 0)))
def lead0_shape(pos):
   x, y = pos
   return (0<y<W)     
sym0.add_site_family(Haldane.sublattices[0] , other_vectors=[(1,-2)])
sym0.add_site_family(Haldane.sublattices[1] , other_vectors=[(1,-2)])
lead0 = kwant.Builder(sym0)
lead0[Haldane.shape(lead0_shape, (0, 0))] = M
lead0[Haldane.neighbors()] = t

# add second neighbours hoppings
lead0[Haldane.a.neighbors()] =  t2*np.exp(-1j*phi)
lead0[Haldane.b.neighbors()] =  t2*np.exp(1j*phi)

lead0.eradicate_dangling()


syst.attach_lead(lead0)
syst.attach_lead(lead0.reversed())



#kwant.plot(syst)


syst = syst.finalized()


bands = kwant.physics.Bands(syst.leads[0])
j=np.linspace(0, 5, 101)
energies = [bands(k) for k in j]
pyplot.figure()
pyplot.plot(j, energies)
pyplot.xlabel("momentum [(lattice constant)^-1]")
pyplot.ylabel("energy [t]")
pyplot.show()

Reply via email to