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 <ousmanebouneou...@gmail.com> wrote: > 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() > > ##################################################################