Hi,

I appreciate the reply. I was impressed  by the details you have given
considering that you have to read the paper that I referenced to and
you cross referenced some literatures in your response to help me
understand better.

Kudos and I am looking forward to keep in touch with this group in the future


Oliver

On 12/8/16, Abbout Adel <[email protected]> wrote:
> Dear Olivier,
>
> I see two options:
> 1) you can mix the two examples [1] [2] of kwant tutorial and work with a
> quasi 1D system. In this case, you need to choose an energy for which you
> will have only one conducting mode in the leads. You need also a spin orbit
> coupling  small enough to have a precession length much larger than the
> width of your lead to avoid the non-parabolicity [3] in your dispersion
> relation (ie: in order to obtain results close to the exact 1D system ).
> So as you see, with this system, you can only study the non-adiabatic
> situation of the article by Trushin  and Chudnovskiy.
> a small program is included below.
>
>
> 2) You can work with an exact  1D system  (ie with a line ) . In this case,
> you need to handle the circular part of your system.(kwant does not have a
>  lattice suitable for the cylindrical discritization )
> The tip is to do  the discritization of your Hamiltonian in the cylindrical
> coordinates[4][5], then, you need to know that your discrete system is a
> graph, and the position of the sites is not important anymore: only the
> potential on the sites and the hoppings between them are pertinent.  So you
> will put the sites of your ring in a straight line and put the hoppings you
> obtain from the discritization (the hoppings will be site dependent ) and
> therefore you will finally get a simple 1D system that can be studied
> by kwant.
>  You will need to use a hopping of the form : $-i\alpha \frac{\sigma_r}{R}$
> with $\sigma_r= \sigma_x \cos(\theta)+\sigma_y \sin(\theta)$     [5]
> (appendix)
>
>
>
>
>
>
>
>
> #########################
> from cmath import exp
> from math import pi
>
> import kwant
>
> # For plotting
> from matplotlib import pyplot
> %matplotlib inline
>
> import tinyarray
>
> # define Pauli-matrices for convenience
> 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, t=1.0, W=10, r1=10, r2=20 ,alpha=0.5):
>
>
>     lat = kwant.lattice.square(a)
>     sys = kwant.Builder()
>
>
>     def ring(pos):
>         (x, y) = pos
>         rsq = x ** 2 + y ** 2
>         return (r1 ** 2 < rsq < r2 ** 2) and x>=0
>
>     sys[lat.shape(ring, (0, r1 + 1))] = 4 * t * sigma_0
>     sys[kwant.builder.HoppingKind((1, 0), lat, lat)] = \
>         -t * sigma_0 - 1j * alpha * sigma_y
>     sys[kwant.builder.HoppingKind((0, 1), lat, lat)] = \
>         -t * sigma_0 + 1j * alpha * sigma_x
>
>
>     sym_lead = kwant.TranslationalSymmetry((-a, 0))
>
>
>     def lead_shape(pos):
>         (x, y) = pos
>         return (r1 < abs(y) < r2)
>
>     def createLead(r):
>         lead=kwant.Builder(sym_lead)
>         lead[lat.shape(lead_shape, (0, r))] =  4 * t * sigma_0
>         lead[kwant.builder.HoppingKind((1, 0), lat, lat)] = \
>             -t * sigma_0 - 1j * alpha * sigma_y
>         lead[kwant.builder.HoppingKind((0, 1), lat, lat)] = \
>             -t * sigma_0 + 1j * alpha * sigma_x
>         return lead
>
>
>     lead1=createLead(r1+1)
>     lead2=createLead(-r1-1)
>         #### Attach the leads and return the system. ####
>     sys.attach_lead(lead1)
>     sys.attach_lead(lead2)
>
>     return sys
>
> def main():
>     sys = make_system(alpha=.2)
>
>     # Check that the system looks as intended.
>     kwant.plot(sys)
>
>     # Finalize the system.
>     sys = sys.finalized()
>     data=[]
>     energies=[0.001*i for i in range(400)]
>     for energy in energies:
>         smatrix=kwant.smatrix(sys,energy)
>         data.append(smatrix.transmission(0,1))
>     pyplot.plot(energies,data)
>
>
> if __name__ == '__main__':
>     main()
>
>
>
> [1] nontrival shapes  (kwant tutorial)
> [2] Matrix structure of on-site and hopping elements Nontrivial shapes
>  (kwant tutorial )
> [3]https://arxiv.org/pdf/0907.4122v1.pdf
> [4]http://journals.aps.org/prb/abstract/10.1103/PhysRevB.70.195346
> [5]http://skemman.is/stream/get/1946/10141/25310/1/ThesisMSc-CsabaD.pdf
>
> --
>
> I hope that this helps.
>
> Adel
>
> On Wed, Dec 7, 2016 at 6:22 PM, Oliver Generalao <
> [email protected]> wrote:
>
>> HI,
>>
>> I was trying to implement the paper
>> http://link.springer.com/article/10.1134%2FS0021364006080042 in kwant,
>> however I have trouble creating the geometry of the wire. I tried some
>> tutorials, I got confused since I am a novice to kwant.
>> It is a 3D setup with the wire(ideally close to a 1-D quantum wire) on
>> xy-plane and the external field's direction is upward(in the direction
>> of positive z-axis). The lead input is from x=-infinity to x=0(in the
>> negative  y-axis) ,then from x=0 the wire starts to curve(in a perfect
>> semicircle manner) with radius R towards the positive  y-axis, and the
>> output lead starts from x=0 to x=-infinity.
>>
>> Herein  is the figure attached as well.
>>
>> Any guidance and help  in creating the code will be greatly
>> appreciated. Thank you.
>>
>>
>>
>>
>> --
>> Oliver B. Generalao
>>
>> M.S. Physics student
>> Structure and Dynamics Group
>> National Institue of Physics
>> University of the Philippines
>> Diliman, Quezon City
>> Trunkline: +63-2-981-8500
>> Mobile: +63-927-4033966
>>
>
>
>
> --
> Abbout Adel
>


-- 
Oliver B. Generalao

M.S. Physics student
Structure and Dynamics Group
National Institue of Physics
University of the Philippines
Diliman, Quezon City
Trunkline: +63-2-981-8500
Mobile: +63-927-4033966

Reply via email to