Thank you for the clarification.
Best Regards
Naveen Yadav
Research Scholar
Department of Physics & Astrophysics
University of Delhi
New Delhi-110007
On Wed, Mar 25, 2020, 18:50 Ousmane LY
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()
##################################################################