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()
>
> ##################################################################

Reply via email to