Dear sir,
As you said I tried the wraparound module but I got errors while
diagonalizing the system. I don't know how to use this module for 3D system.
Please help. The code is attached below

UserCodeError: Error occurred in user-supplied value function "f".
See the upper part of the above backtrace for more information.


sys=kwant.Builder(kwant.TranslationalSymmetry((0,0,-1)))
lat=kwant.lattice.cubic(norbs=2)
sys[(lat(x,y,0) for x in range(L) for y in range(W))]=onsite
sys[kwant.builder.HoppingKind((1, 0, 0), lat, lat)] = hoppingx
sys[kwant.builder.HoppingKind((0, 1, 0), lat, lat)] = hoppingy
sys[kwant.builder.HoppingKind((0, 0, 1), lat, lat)] = hoppingz

#lead=kwant.Builder(kwant.TranslationalSymmetry((0,0,-1)))
#lead[(lat(x,y,z)  for x in range(L) for y in range(W)for z in
range(H))]=onsite
#lead[kwant.builder.HoppingKind((1, 0, 0), lat, lat)] = hoppingx
#lead[kwant.builder.HoppingKind((0, 1, 0), lat, lat)] = hoppingy
#lead[kwant.builder.HoppingKind((0, 0, 1), lat, lat)] = hoppingz
#sys.attach_lead(lead)
#sys.attach_lead(lead.reversed())
sys = kwant.wraparound.wraparound(sys, keep=None)
kwant.plot(sys)
sysf=sys.finalized()
ham_mat = sysf.hamiltonian_submatrix()
ev = sla.eigsh(ham_mat, k=31, which='SM')
evecs = ev[1]
prob_dens = np.abs(evecs[:, 30])**2
#print(prob_dens)
#Sites=list(sysf.sites)
#rho = kwant.operator.Density(sysf)
#density = rho(psi)
#wf_sqr = sum(rho(psi) for psi in wf(0))

On Fri, May 8, 2020 at 3:30 AM Abbout Adel <abbout.a...@gmail.com> wrote:

> Sorry, Naveen. I don't have an example ready to use.
>
> The idea behind is that the wraparound module helps you in getting the
> homiltonian for each K point:  H(kx,ky,kz)
>
> Diagonalizing it will give you E(kx,ky,kz) which means a point (or few
> points for a multiband system)
> the eigenvectors will help you to calculate the density for a given mode.
>
> I hope this helps,
>
> Adel
>
> On Thu, May 7, 2020 at 9:46 PM Naveen Yadav <naveengunwa...@gmail.com>
> wrote:
>
>> Dear sir,
>> Could you please provide me an working example of this type?
>>
>> Best Regards
>> Naveen Yadav
>> Research Scholar
>> Department of Physics & Astrophysics
>> University of Delhi
>> New Delhi-110007
>>
>> On Thu, May 7, 2020, 20:37 Abbout Adel <abbout.a...@gmail.com> wrote:
>>
>>> Hi again,
>>>
>>> I f you want translational symmetry, you need to use wraparound module
>>> and you will need to find your result only on one unit cell.
>>> You will have also to do integration on the Brillouin zone.
>>>
>>> I hope this helps
>>> Adel
>>>
>>> On Thu, May 7, 2020 at 5:12 PM Naveen Yadav <naveengunwa...@gmail.com>
>>> wrote:
>>>
>>>> Dear sir,
>>>> I understand what you have said.  But how can I maintain translation
>>>> symmetry ?because my system is 3D and for plotting current I access the
>>>> sites of 3D system using *list(sys.sites) *and plot the current for 2D
>>>> slice. Please suggest me.
>>>>
>>>> Best Regards
>>>> Naveen Yadav
>>>> Research Scholar
>>>> Department of Physics & Astrophysics
>>>> University of Delhi
>>>> New Delhi-110007
>>>>
>>>> On Thu, May 7, 2020, 19:06 Abbout Adel <abbout.a...@gmail.com> wrote:
>>>>
>>>>> Dear Naveen,
>>>>>
>>>>> What you get is what is expected. You do not have translational
>>>>> symmetry.
>>>>> Rewrite your code by keeping only two dimensions and you will see why.
>>>>>
>>>>> I hope this helps,
>>>>> Adel
>>>>>
>>>>>
>>>>> On Thu, May 7, 2020 at 12:52 PM Naveen Yadav <naveengunwa...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Dear KWANT Developers,
>>>>>> I am trying to plot the current density. The procedure is
>>>>>> straightforward. I have attached leads to the scattering region (leads 
>>>>>> have
>>>>>> same onsite and hopping as of the scattering region) as
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> *sys[(lat(z,y,x) for z in range(H) for y in range(W)for x in
>>>>>> range(L))]=onsitesys[kwant.builder.HoppingKind((1, 0, 0), lat, lat)] =
>>>>>> hoppingzsys[kwant.builder.HoppingKind((0, 1, 0), lat, lat)] =
>>>>>> hoppingysys[kwant.builder.HoppingKind((0, 0, 1), lat, lat)] =
>>>>>> hoppingxlead=kwant.Builder(kwant.TranslationalSymmetry((1,0,0)))lead[(lat(z,y,x)
>>>>>>  for z in range(H) for y in range(W)for x in
>>>>>> range(L))]=onsitelead[kwant.builder.HoppingKind((1, 0, 0), lat, lat)] =
>>>>>> hoppingzlead[kwant.builder.HoppingKind((0, 1, 0), lat, lat)] =
>>>>>> hoppingylead[kwant.builder.HoppingKind((0, 0, 1), lat, lat)] =
>>>>>> hoppingxsys.attach_lead(lead, 
>>>>>> add_cells=80)sys.attach_lead(lead.reversed())*
>>>>>> [image: image.png]
>>>>>> As you can see from the plot there is a discontinuity in the plot at
>>>>>> (W=20).  Why it is so even if the scattering region and leads have same
>>>>>> onsite and hopping and there is translation symmetry throughout ?
>>>>>>
>>>>>> --
>>>>>> Best Regards,
>>>>>> Naveen Yadav
>>>>>> Research Scholar
>>>>>> Department of Physics & Astrophysics
>>>>>> University Of Delhi
>>>>>> New Delhi-110007
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Abbout Adel
>>>>>
>>>>
>>>
>>> --
>>> Abbout Adel
>>>
>>
>
> --
> Abbout Adel
>


-- 
Best Regards,
Naveen Yadav
Research Scholar
Department of Physics & Astrophysics
University Of Delhi
New Delhi-110007

Reply via email to