Hello,
In a 2D map of QHE edge state calculated using the example code below, why
there is no transmitted mode appeared in the upper arm? If my understanding
is correct, the mode should be propagated to the upper arm as well
(Buttiker picture).
Do I need to attach 2 or 3 more leads (a 4-probe configuration) to resolve
the above mentioned issue?
Best regards,
Fauzi
import math
from cmath import exp
import numpy
from matplotlib import pyplot
import kwant
from kwant.digest import gauss
def hopping(sitei, sitej, phi, salt):
xi, yi = sitei.pos
xj, yj = sitej.pos
return -exp(-0.5j * phi * (xi - xj) * (yi + yj))
def onsite(site, phi, salt):
return 0.05 * gauss(repr(site), salt) + 4
def make_system(L=75):
def central_region(pos):
x, y = pos
return -L < x < L and \
abs(y) < L - 70 * math.exp(-x**2 / 20**2)
lat = kwant.lattice.square()
sys = kwant.Builder()
sys[lat.shape(central_region, (0, 0))] = onsite
sys[lat.neighbors()] = hopping
sym = kwant.TranslationalSymmetry((-1, 0))
lead = kwant.Builder(sym)
lead[(lat(0, y) for y in range(-L + 1, L))] = 4
lead[lat.neighbors()] = hopping
sys.attach_lead(lead)
sys.attach_lead(lead.reversed())
return sys.finalized()
sys = make_system()
energy = 0.15
kwant.plot(sys)
# Calculate and plot QHE conductance plateaus.
reciprocal_phis = numpy.linspace(4, 100, 200)
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()
# Calculate and plot a QHE edge state.
def density(sys, energy, args, lead_nr):
wf = kwant.wave_function(sys, energy, args)
return (abs(wf(lead_nr))**2).sum(axis=0)
d = density(sys, energy, [1/40.0, ""], 0)
kwant.plotter.map(sys, d)