from matplotlib import pyplot import kwant import math def make_system(a=1,W=10,t=1.4): lat=kwant.lattice.square(a) sys=kwant.Builder() def bias(site,volt): (x,y)=site.pos if 0 <=x <10: return (volt/10)*x elif x==10: return volt else: return 0 def onsite(site,volt=0): print(volt) return 4*t- bias(site,volt) sys[(lat(x,y) for x in range(0,10) for y in range(W))]=onsite sys[lat.neighbors()]=1.4 sym=kwant.TranslationalSymmetry((-a,0)) lead=kwant.Builder(sym) lead[(lat(0,y) for y in range(10))]=4*t lead[lat.neighbors()]=1 sys.attach_lead(lead) sys.attach_lead(lead.reversed()) return sys def main(): sys=make_system() sys=sys.finalized() kwant.plot(sys) pyplot.show() if __name__=='__main__': main()