Hi everyone,
I would like to reproduce figure 2.c of the manuscript
http://doi.org/10.1103/PhysRevB.88.125409 in that they calculate the
conductivity of a bilayer zigzag graphene. Even though I get similar
transmission values, the steps do not occur at the same values. I'm not sure
what my mistake would be. I would appreciate any suggestions.
The code is the following:
import numpy as np
import kwant
import matplotlib.pyplot as plt
a = 0.142
c0 = 0.5 # to try
t = 3.16
t1 = 0.39/3.16
widthh= 23.7
graphene = kwant.lattice.general([(a*np.sqrt(3), 0,0), (a*np.sqrt(3) / 2, 3 / 2
* a,0)],
[(0, 0,0),
(0, -a,0),
(0, a,c0),
(0, 0,c0)
])
a1, b1, a2, b2 = graphene.sublattices
syst = kwant.Builder()
def make_system(length=20, width=widthh):
def rectangle(pos):
x, y, z = pos
return -length / 2 < x < length / 2 and -width / 2 < y < width / 2 and
-5 < z < 5
syst[graphene.shape(rectangle, (0, 0,0))] = 0
syst[graphene.neighbors()] = t
syst[kwant.builder.HoppingKind((0, 0), b2, a1)] = t1
make_system()
symmetry_left = kwant.TranslationalSymmetry((-a*np.sqrt(3), 0, 0))
symmetry_right = kwant.TranslationalSymmetry((a*np.sqrt(3), 0, 0))
lead_left = kwant.Builder(symmetry_left)
lead_right = kwant.Builder(symmetry_right)
def lead_shape(pos):
x, y, z = pos
return -widthh / 2 < y < widthh / 2
for lead in [lead_left, lead_right]:
lead[graphene.shape(lead_shape, (0, 0, 0))] = 0
lead[graphene.neighbors()] = t
lead[kwant.builder.HoppingKind((0, 0), b2, a1)] = t1
syst.attach_lead(lead_left);
syst.attach_lead(lead_right);
kwant.plot(syst)
syst_finalized = syst.finalized()
lead_index = 0
lead = syst_finalized.leads[lead_index]
# Conductivity calculation
data = []
for i in range(51):
energias = 0+0.07*3.16*i/50.0+0.000001
smatrix_bilayer = kwant.smatrix(syst_finalized, energy=energias)
data.append([energias, smatrix_bilayer.transmission(1, 0)])
data = np.array(data)
plt.plot(data[:,0]/3.16,data[:,1])
In the case of the monolayer (figure 2.a) I obtain the same results.
thanks