Dear Adel, Thank you for your reply and help. It is so useful for me.
Best regards, Nafise On Mon, Dec 2, 2019 at 10:12 AM Nafise Nouri <[email protected]> wrote: > > Nafise Nouri Tue, Nov 5, 10:37 PM > Dear Adel, > > > Best regards, > Nafise > > On Wed, Nov 6, 2019 at 1:27 AM Adel Belayadi <[email protected]> wrote: > >> Dear nafise. I have seen you have asked the question again. Please state >> that your query was solved so other might know and benifit. Please sharing >> is the purpose of mailing list. >> Know back to your problem. It is better to avoid attach.reversed.Instead >> create for instance lead2 with -Num. >> Please state that your problem was solved in mail listing as Josef >> advised u. >> Best, Adel >> >> Le mar. 5 nov. 2019 à 21:07, Adel Belayadi <[email protected]> a écrit : >> >>> You are welcome. >>> >>> Le mar. 5 nov. 2019 à 20:08, Nafise Nouri <[email protected]> a >>> écrit : >>> >>>> Dear Adel, >>>> >>>> Thank you for your reply and help. It is so useful for me. >>>> >>>> Best regards, >>>> >>>> Nafise >>>> >>>> On Tue, Nov 5, 2019 at 12:03 AM Adel Belayadi <[email protected]> >>>> wrote: >>>> >>>>> Dear nafise, >>>>> Good day, it seem that you have problem with symmetry. >>>>> To some up you have to fix the following issues: >>>>> 1. define the lattice.general correctly >>>>> 2. provide larger limit along x for the rectangle, so we might avoid >>>>> isolated atoms(unconnected) >>>>> 3. chose the symmetry as Num = 8*(a1*sqrt(3)/2) and then use sym = >>>>> kwant.TranslationalSymmetry([0, Num]) >>>>> 4. shift the origin of y direction in your delet function by >>>>> (y-a1*sqrt(3))**2 intead of y**2 >>>>> 5. the boundary in lead_shape is for x not y. If we use y the code >>>>> will bug (infinity system) >>>>> Please, you have one thing left to do. kindly make sure that the lead >>>>> is 100% armchair, perhaps Mrs Josefe or About would be for a help. >>>>> I have plotted the bands for the lead, it seems armchair but I still >>>>> do not muster 100% the source code of kwant.plotter.bands. Please check >>>>> this pont. >>>>> See the code with explanation >>>>> Happy kwanting >>>>> >>>>> Best Adel >>>>> >>>>> import kwant >>>>> from math import sqrt >>>>> import matplotlib.pyplot as plt >>>>> import tinyarray >>>>> import numpy as np >>>>> import math >>>>> import cmath >>>>> #import scipy.linalg as la >>>>> import matplotlib >>>>> d=1.42; >>>>> a1=d*sqrt(3); >>>>> >>>>> #on-site energy................................................... >>>>> t=-2.7; >>>>> >>>>> latt = kwant.lattice.general([[a1, 0], [a1/2, a1*sqrt(3)/2]], # >>>>> lattice vectors >>>>> [[0, 0], [0, a1/sqrt(3)]]) # >>>>> Coordinates of the sites >>>>> a, b = latt.sublattices >>>>> >>>>> syst= kwant.Builder() >>>>> >>>>> >>>>> ## you have to provide quite big boundaries to avoid isolated atoms so >>>>> abs(x)=4*a1 >>>>> def rectangle(pos): >>>>> x, y = pos >>>>> z=x**2+y**2 >>>>> return -4*a1<x<4*a1 and -6*d<y<7*d >>>>> >>>>> syst[latt.shape(rectangle,(1,1))]=0 >>>>> >>>>> ## you have to shift the origine of your diffect by a1*sqrt(3) >>>>> def delet(pos, shift = a1*sqrt(3)): >>>>> x, y = pos >>>>> z=x**2+(y-shift)**2 >>>>> return z<(2*a1)**2 >>>>> >>>>> del syst[latt.shape(delet, (1,1))] >>>>> >>>>> >>>>> #nearestneighbors............................................................. >>>>> syst[[kwant.builder.HoppingKind((0,0),a,b)]]=t >>>>> syst[[kwant.builder.HoppingKind((0,1),a,b)]]=t >>>>> syst[[kwant.builder.HoppingKind((-1,1),a,b)]]=t >>>>> >>>>> ## using [0, Num] as True >>>>> Num = 8*(a1*sqrt(3)/2) >>>>> sym = kwant.TranslationalSymmetry([0, Num]) >>>>> >>>>> lead = kwant.Builder(sym) >>>>> >>>>> ##the lead shape must be lilited in x not y >>>>> def lead_shape(pos): >>>>> x, y = pos >>>>> return -4*a1<x<4*a1 >>>>> >>>>> lead[latt.shape(lead_shape, (0,0))]=0 ##or use the folowing lambda form >>>>> >>>>> ##lead[latt.shape((lambda pos: abs(pos[0]) < 4*a1 ), (0, 0))] = 0 >>>>> >>>>> def delet_lead(pos, shift = +a1*sqrt(3)): >>>>> x, y = pos >>>>> z=x**2+(y-shift)**2 >>>>> return z<(2*a1)**2 >>>>> >>>>> del lead[latt.shape(delet_lead, (1,1))] >>>>> >>>>> lead[[kwant.builder.HoppingKind((0,0),a,b)]]=t >>>>> lead[[kwant.builder.HoppingKind((0,1),a,b)]]=t >>>>> lead[[kwant.builder.HoppingKind((-1,1),a,b)]]=t >>>>> >>>>> syst.attach_lead(lead,add_cells=0) >>>>> kwant.plot(syst); >>>>> syst.attach_lead(lead.reversed(),add_cells=0) >>>>> kwant.plot(syst); >>>>> >>>>> ### for armchair -pi/3*d<ky<pi/3*d >>>>> from numpy import pi, linspace >>>>> momenta = list(linspace(-pi/3, pi/3, 50)) >>>>> kwant.plotter.bands(lead.finalized(), momenta); >>>>> >>>>> Le dim. 3 nov. 2019 à 10:55, Nafise Nouri <[email protected]> a >>>>> écrit : >>>>> >>>>>> Dear Joseph >>>>>> >>>>>> At first thank you for kwant team. My problem for zigzag nanoribbon >>>>>> with defect (hole) was solved with your help. Now I have a bit problem >>>>>> with >>>>>> armchair nanoribbon. I have changed zigzag nanoribbon according to making >>>>>> the armchair nanoribbon. It is OK when we have no defect on the system >>>>>> but >>>>>> when I try to make hole on the scattering region and leads I have a >>>>>> problem. The shape of holes on the scattering region and leads are not >>>>>> same. My code is as the following. That is very king of you if you help >>>>>> me >>>>>> where is the problem. >>>>>> >>>>>> Thanks In advance for your help. >>>>>> >>>>>> Beat wishes, >>>>>> Nafise >>>>>> >>>>>> import kwant >>>>>> from math import sqrt >>>>>> import matplotlib.pyplot as plt >>>>>> import tinyarray >>>>>> import numpy as np >>>>>> import math >>>>>> import cmath >>>>>> #import scipy.linalg as la >>>>>> import matplotlib >>>>>> d=1.42; >>>>>> a1=d*math.sqrt(3); >>>>>> >>>>>> #on-site energy................................................... >>>>>> t=-2.7; >>>>>> >>>>>> latt = kwant.lattice.general([(0,a1),(a1*math.sqrt(3)/2,a1*0.5)], >>>>>> [(-d/2,a1/2),(d/2,a1/2)]) >>>>>> a,b = latt.sublattices >>>>>> syst= kwant.Builder() >>>>>> >>>>>> def rectangle(pos): >>>>>> x, y = pos >>>>>> z=x**2+y**2 >>>>>> return -2.4*a1<x<2.4*a1 and -5*d<y<5*d >>>>>> >>>>>> syst[latt.shape(rectangle,(1,1))]=0 >>>>>> >>>>>> def delet(pos): >>>>>> x, y = pos >>>>>> z=x**2+y**2 >>>>>> return z<(2*a1)**2 >>>>>> >>>>>> del syst[latt.shape(delet, (1,1))] >>>>>> >>>>>> #nearest >>>>>> neighbors............................................................. >>>>>> syst[[kwant.builder.HoppingKind((0,0),a,b)]] =t >>>>>> syst[[kwant.builder.HoppingKind((0,1),a,b)]] =t >>>>>> syst[[kwant.builder.HoppingKind((-1,1),a,b)]] =t >>>>>> >>>>>> ax=kwant.plot(syst); >>>>>> >>>>>> sym = kwant.TranslationalSymmetry(latt.vec((-2,4))) >>>>>> >>>>>> lead = kwant.Builder(sym) >>>>>> >>>>>> def lead_shape(pos): >>>>>> x, y = pos >>>>>> return -5*d<y<5*d >>>>>> >>>>>> lead[latt.shape(lead_shape, (1,1))]=0 >>>>>> >>>>>> def delet_lead(pos): >>>>>> x, y = pos >>>>>> z=x**2+y**2 >>>>>> return z<(2*a1)**2 >>>>>> >>>>>> del lead[latt.shape(delet_lead, (1,1))] >>>>>> >>>>>> lead[[kwant.builder.HoppingKind((0,0),a,b)]]=t >>>>>> lead[[kwant.builder.HoppingKind((0,1),a,b)]]=t >>>>>> lead[[kwant.builder.HoppingKind((-1,1),a,b)]]=t >>>>>> >>>>>> syst.attach_lead(lead,add_cells=0) >>>>>> syst.attach_lead(lead.reversed(),add_cells=0) >>>>>> ax=kwant.plot(syst); >>>>>> >>>>>
