Dear Naveen,

These inwards- and outwards- facing leads wouldn't have translation
invariance. This makes one unable to compute a mode decomposition in
such a geometry, and therefore computing the conductance becomes
extremely difficult. Right now Kwant only implements the algorithms
that assume translationally invariant leads.

Best,
Anton

On Tue, 13 Aug 2019 at 14:15, Naveen Yadav <naveengunwa...@gmail.com> wrote:
>
> Dear sir,
>
> syst.attach_lead(lead, origin=lat(0, 0, 0))  # lat(0, 0, 0) is in the hole of 
> the annulus
> This is okay. But I want to create leads in the radial direction, suppose X 
> is the width of cylinder,  Y is circumference and Z is the Difference in 
> outer and inner radii. So, I want to create leads wrapped around Y, for inner 
> circumference lead should directed towards origin and for outer circle 
> directed away from the origin. Code for creating annulus geometry is given 
> below-
>
> import kwant
> import scipy.sparse.linalg as sla
> import matplotlib.pyplot as plt
> import tinyarray
> import numpy as np
> from numpy import cos, sin, pi
> import cmath
> from cmath import exp
>
> sigma_0 = tinyarray.array([[1, 0], [0, 1]])
> sigma_x = tinyarray.array([[0, 1], [1, 0]])
> sigma_y = tinyarray.array([[0, -1j], [1j, 0]])
> sigma_z = tinyarray.array([[1, 0], [0, -1]])
>
>
> def make_system(a=1, L=22, r_in=22, r_out=30, t=1.0, t_x=1.0, t_y=1.0, 
> t_z=1.0, lamda=0.2, beta=1.05, phi_uc = 0.0078):
>     # ring shape
>     def ring(pos):
>         (z, y, x) = pos
>         rsq = y ** 2 + z ** 2
>         return r_in ** 2 <= rsq <= r_out ** 2 and x in range (L)
>
>     def onsite(site):
>         return (t_z * cos(beta) + 2 * t) * sigma_z
>
>     def hoppingx(site0, site1):
>         return (-0.5 * t * sigma_z - 0.5 * 1j * t_x * sigma_x)
>
>     def hoppingy(site0, site1):
>         return -0.5 * t * sigma_z - 0.5 * 1j * t_y * sigma_y
>
>     def hoppingz(site0, site1):
>         y = site1.pos[1]
>         return (-0.5 * t_z * sigma_z - 0.5 * 1j * lamda * sigma_0) * exp(2 * 
> pi * 1j * phi_uc * a * (y-40))
>
>
>     syst = kwant.Builder()
>     lat = kwant.lattice.cubic(a, norbs=2)
>     syst[lat.shape(ring, (0, r_in+1, 0))] = onsite
>     syst[kwant.builder.HoppingKind((1, 0, 0), lat, lat)] = hoppingz
>     syst[kwant.builder.HoppingKind((0, 1, 0), lat, lat)] = hoppingy
>     syst[kwant.builder.HoppingKind((0, 0, 1), lat, lat)] = hoppingx
>
>     lead = kwant.Builder(kwant.TranslationalSymmetry((-a, 0, 0)))
>
>     lead[lat.shape(ring, (0, r_in+1, 0))] = onsite
>     lead[kwant.builder.HoppingKind((1, 0, 0), lat, lat)] = hoppingz
>     lead[kwant.builder.HoppingKind((0, 1, 0), lat, lat)] = hoppingy
>     lead[kwant.builder.HoppingKind((0, 0, 1), lat, lat)] = hoppingx
>
>     syst.attach_lead(lead)
>     syst.attach_lead(lead, origin=lat(0,0,0))
>     return syst
>
> def analyze_system():
>     syst = make_system()
>     fig = plt.figure()
>     ax = kwant.plot(syst)
>     ax.savefig('sys2.png',dpi=200)
>
> def main():
>     syst = make_system()
>     analyze_system()
> main()
>
> On Tue, Aug 13, 2019 at 3:18 PM Joseph Weston <joseph.westo...@gmail.com> 
> wrote:
>>
>> Hi,
>>
>> Dear sir,
>>
>> Could we attach circular leads to the inner and outer circle of annulus 
>> geometry in 3D? Please suggest me if there is a way to do that.
>>
>> What do you mean by circular leads? Do you mean leads with a circle 
>> cross-section (i.e. a semi-infinite cylinder lead)? If so then all you need 
>> to do is create a lead with a circular cross-section uses 'lat.shape' in a 
>> similar way to how you created the scattering region. You can attach leads 
>> to the interior of the annulus by specifying the parameter 'origin' to be a 
>> site in the interior of the annulus when calling 'attach_lead' (see the 
>> documentation [1]). e.g.:
>>
>>     syst.attach_lead(lead, origin=lat(0, 0))  # lat(0, 0) is in the hole of 
>> the annulus
>>
>>
>> Happy Kwanting,
>>
>>
>> Joe
>>
>>
>> [1]: 
>> https://kwant-project.org/doc/1/reference/generated/kwant.builder.Builder#kwant.builder.Builder.attach_lead
>
>
>
> --
>
>
> With Best Regards
> NAVEEN YADAV
> Ph.D Research Scholar
> Deptt. Of Physics & Astrophysics
> University Of Delhi.

Reply via email to