Hi all.
I would like to know how to compute Hall conductance in a honeycomb lattice using Kwant. In my attempt, I started with the construction of the honeycomb lattice:
import kwant
import matplotlib.pyplot as plt
import numpy
from cmath import exp
from kwant.digest import gauss
lat = kwant.lattice.honeycomb()
sys = kwant.Builder()
def rectangle(pos):
x, y = pos
return 0 < x < 40 and 0 < y < 20
sys[lat.shape(rectangle, (1, 1))] = 0
sys[lat.neighbors()] = -1
sym = kwant.TranslationalSymmetry((-1, 0))
sym.add_site_family(lat.sublattices[0], other_vectors=[(-1, 2)])
sym.add_site_family(lat.sublattices[1], other_vectors=[(-1, 2)])
lead = kwant.Builder(sym)
def lead_shape(pos):
x, y = pos
return 0 < y < 20
lead[lat.shape(lead_shape, (-1,1))] = 4
lead[lat.neighbors()] = -1
sys.attach_lead(lead)
sys.attach_lead(lead.reversed())
How to attach another pair of leads at 13 < x < 15 and 23 < x < 25 with y = 10 and y =0? I tried
# For the 2nd Lead
sym2 = kwant.TranslationalSymmetry((-1, 0))
sym2.add_site_family(lat.sublattices[0], other_vectors=[(-1, 2)])
sym2.add_site_family(lat.sublattices[1], other_vectors=[(-1, 2)])
lead2 = kwant.Builder(sym)
def lead2_shape(pos2):
x, y = pos2
return 13 < x < 15, 10 < y < 10
lead[lat.shape(lead2_shape, (1,1))] = 4
lead[lat.neighbors()] = -1
sys.attach_lead(lead2)
sys.attach_lead(lead2.reversed())
but nothing works.
Also How to calculate hall conductance from these leads (assuming hopping is by Peierls substitution where t is replaced by an exponential)?
I am very new to the kwant program, as this is for an undergraduate research.
Regards,
James