Dear professionals, 
I am a beginner and I have encountered a problem with my Kane-Mele 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
import cmath
from matplotlib import pyplot


# Pauli matrices
s0 = np.identity(2)
sz = np.diag([1, -1])



graphene = kwant.lattice.honeycomb()
a, b = graphene.sublattices

nnn_hoppings_a = (((-1, 0), a, a), ((0, 1), a, a), ((1, -1), a, a))
nnn_hoppings_b = (((1, 0), b, b), ((0, -1), b, b), ((-1, 1), b, b))
nnn_hoppings = nnn_hoppings_a + nnn_hoppings_b
W=10
M=0
t1=1
t2=-0.06
phi=np.pi/2
spin_orbit = 1j *t2*cmath.exp(1j*phi)* sz



def graphene_shape(pos):
   x, y = pos
   return (0<y<W)

def onsite(site):
    return s0 * M

   

bulk_kane_mele = kwant.Builder(kwant.TranslationalSymmetry([1, 0]))
bulk_kane_mele[graphene.shape(graphene_shape, (0, 0))] = onsite
bulk_kane_mele[graphene.neighbors(1)] = s0*t1
bulk_kane_mele[[kwant.builder.HoppingKind(*hopping) for hopping in 
nnn_hoppings]] = spin_orbit

syst = bulk_kane_mele.finalized()

bands = kwant.physics.Bands(syst)
j=np.linspace(0, 6, 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