Dear Naveen, if you want to use a 2d system to represent local properties of a 3d system, the former shouldn’t be considered as a physical system. Therefore, its onsite and hopping values are not relevant and shouldn’t alter your calculations in any sens. Even attaching leads for the 2d system may not be necessary. However, you have to be sure that the 2d system represents well the 2d plane of the underlying 3d geometry. This would concern mainly the number of sites and links. You may have a look to the illustration below. Happy kwanting, Ousmane,
############################################################ import kwant def make_3d(L=5,W=5,H=5): # make a 3d system sys=kwant.Builder() lat=kwant.lattice.cubic(norbs=1) sys[(lat(x,y,z) for x in range(L) for y in range(W) for z in range(H))]=0 sys[lat.neighbors()]=-1 lead=kwant.Builder(kwant.TranslationalSymmetry((-1,0,0))) lead[(lat(0,y,z) for y in range(W) for z in range(H))] = -1 lead[lat.neighbors()]=-1 sys.attach_lead(lead) return sys.finalized() def make_2d(W=5,H=5): # make an auxiliary 2d system sys=kwant.Builder() lat=kwant.lattice.square() sys[(lat(y,z) for y in range(W) for z in range(H) )]= " " sys[lat.neighbors()]= " " return sys.finalized() def main(): # calculate the current at a given (y,z) plane given_x=0 # e.g def where(site1,site2): return site1.pos[0]==given_x and site2.pos[0]==given_x psi=kwant.wave_function(make_3d(),energy=0)(0)[0] # lowest mode of lead 0 current=kwant.operator.Current(make_3d(), where=where)(psi) # plot the current using the auxiliary 2d system kwant.plotter.current(make_2d(), current) if __name__=='__main__': main() ##################################################################