Quantum Hall effect in bilayer graphene
Dear Lee,
From what I understand your result is correct, since you don't include the spin degree of freedom. (4 n e^2/h includes the spin degeneracy).
Best,
Anton
On Wed, Mar 9, 2016 at 1:15 AM, 고운
Hi,
I am trying to reproduce the quantum Hall effect in bilayer graphene by using KWANT.
I could reproduce the quantum hall effect in monolayer graphene with quantized hall conductance (N+1/2)(2e^2/h), thanks to tutorials in the web and advices in this forum.
Firstly, I tried AB-stacked bilayer graphene WITHOUT interlayer hopping and I got quantized hall conductance (N+1/2)(4e^2/h) corresponding to the double of the Hall conductance of graphene as can be expected.
And then, I tried AB-stacked bilayer graphene WITH interlayer hopping and I got quantized hall conductance N(2e^2/h)s. However, the Hall conuctance of bilayer graphene was known to be quantized as N(4e^2/h).
How can I fix the problem? I pasted my KWANT code. Any suggestions will be greatly appreciated.
thanks,
Lee
------------------ my KWANTt code --------------------
# Quantum Hall conductance in bilayer graphene
from __future__ import division # so that 1/2 == 0.5, and not 0 import math from math import pi, sqrt, tanh from cmath import exp import numpy import kwant from kwant.digest import gauss import scipy.sparse.linalg as sla from matplotlib import pyplot
#lattice parameter a_L=1 c_L=1.36178862*a_L sin_30, cos_30 = (1 / 2, sqrt(3) / 2) graphene = kwant.lattice.general([(a_L, 0, 0), ( a_L*0.5, a_L*sqrt(3)*0.5, 0), (0, 0, 2*c_L)], [(0, 0, -c_L/2), (0, a_L / sqrt(3), -c_L/2), (0, 0, c_L/2), (a_L*0.5, a_L * 0.5 / sqrt(3), c_L/2) ]) a1, b1, a2, b2 = graphene.sublattices
#hopping parameter gamma0=1#3.16 gamma1=0.126#0.4 gamma3=0#0.4 gamma4=0#0.15
#define hopping in magnetic field perpendicular to graphene with A=(By,0,0) def hop0(sitei, sitej, phi, salt): xi, yi, zi = sitei.pos xj, yj, zj = sitej.pos return -gamma0*exp(-0.5j * phi * (xi - xj) * (yi + yj)) def hop1(sitei, sitej, phi, salt): xi, yi, zi = sitei.pos xj, yj, zj = sitej.pos return -gamma1*exp(-0.5j * phi * (xi - xj) * (yi + yj)) def hop3(sitei, sitej, phi, salt): xi, yi, zi = sitei.pos xj, yj, zj = sitej.pos return -gamma3*exp(-0.5j * phi * (xi - xj) * (yi + yj)) def hop4(sitei, sitej, phi, salt): xi, yi, zi = sitei.pos xj, yj, zj = sitej.pos return gamma4*exp(-0.5j * phi * (xi - xj) * (yi + yj)) def onsite(site, phi, salt): return 0.05 * gauss(repr(site), salt)
def make_system(Lx=10, Ly=10, Lz=0.75*c_L): def rect(pos): x, y, z = pos return abs(x) < Lx and abs(z) < Lz and abs(y) < Ly sys = kwant.Builder() sys[graphene.shape(rect, (0, 0, 0))] = 0 hoppings1 = (((0, 0, 0), a1, b1), ((0, 1, 0), a1, b1), ((-1, 1, 0), a1, b1)) #gamma0 hoppings2 = (((0, 0, 0), a2, b2), ((0, 1, 0), a2, b2), ((1, 0, 0), a2, b2)) #gamma0 hoppings3 = ((0, 0, 0), a1, a2) #gamma1 hoppings4 = (((0, 0, 0), b1, b2), ((1, 0, 0), b1, b2), ((1, -1, 0), b1, b2)) #gamma3 hoppings5 = (((0, 0, 0), a1, b2), ((0, 1, 0), a1, b2), ((1, 0, 0), a1, b2), ((0, 0, 0), a2, b1), ((0, 1, 0), a2, b1), ((-1, 1, 0), a2, b1)) #gamma4
sys[[kwant.builder.HoppingKind(*hopping) for hopping in hoppings1]] = hop0 sys[[kwant.builder.HoppingKind(*hopping) for hopping in hoppings2]] = hop0 sys[kwant.builder.HoppingKind(*hoppings3)] = hop1#gamma1 sys[[kwant.builder.HoppingKind(*hopping) for hopping in hoppings4]] = hop3 sys[[kwant.builder.HoppingKind(*hopping) for hopping in hoppings5]] = hop4
def family_colors(site): if site.family == a1: return 0 elif site.family == a2: return 1 elif site.family == b1: return 0 elif site.family == b2: return 1 kwant.plot(sys, site_color=family_colors, site_lw=0.1, colorbar=False)
#### Define the leads. #### # left lead sym0 = kwant.TranslationalSymmetry(graphene.vec((-1, 0, 0))) def lead0_shape(pos): x, y, z = pos return ( abs(y) < Ly) and ( abs(z) < Lz) lead0 = kwant.Builder(sym0) lead0[graphene.shape(lead0_shape, (0, 0, 0))] = 0 #onsite lead0[[kwant.builder.HoppingKind(*hopping) for hopping in hoppings1]] = hop0 lead0[[kwant.builder.HoppingKind(*hopping) for hopping in hoppings2]] = hop0 lead0[kwant.builder.HoppingKind(*hoppings3)] = hop1#gamma1 lead0[[kwant.builder.HoppingKind(*hopping) for hopping in hoppings4]] = hop3 lead0[[kwant.builder.HoppingKind(*hopping) for hopping in hoppings5]] = hop4
sym1 = kwant.TranslationalSymmetry(graphene.vec((1, 0, 0))) def lead1_shape(pos): x, y, z = pos return ( abs(y) < Ly) and ( abs(z) < Lz) lead1 = kwant.Builder(sym1) lead1[graphene.shape(lead1_shape, (0, 0, 0))] = 0 #onsite lead1[[kwant.builder.HoppingKind(*hopping) for hopping in hoppings1]] = hop0 lead1[[kwant.builder.HoppingKind(*hopping) for hopping in hoppings2]] = hop0 lead1[kwant.builder.HoppingKind(*hoppings3)] = hop1#gamma1 lead1[[kwant.builder.HoppingKind(*hopping) for hopping in hoppings4]] = hop3 lead1[[kwant.builder.HoppingKind(*hopping) for hopping in hoppings5]] = hop4
sys.attach_lead(lead0) sys.attach_lead(lead1)
kwant.plot(sys, site_color=family_colors, site_lw=0.01, lead_site_lw=0, colorbar=False)
return sys.finalized()
sys = make_system() kwant.plotter.bands(sys.leads[0], args=[1/40.0, ""])
energy = 0.35 # Calculate and plot QHE conductance plateaus. reciprocal_phis = numpy.linspace(1, 100, 100) conductances = [] for phi in 1 / reciprocal_phis: smatrix = kwant.smatrix(sys, energy, args=[phi, ""]) conductances.append(smatrix.transmission(1, 0)) pyplot.plot(reciprocal_phis, conductances) pyplot.show()
#END
participants (2)
-
Anton Akhmerov
-
고운