Nafise Nouri Tue, Nov 5, 10:37 PM Dear Adel,
Best regards, Nafise On Wed, Nov 6, 2019 at 1:27 AM Adel Belayadi <adelp...@gmail.com> 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 <adelp...@gmail.com> a écrit : > >> You are welcome. >> >> Le mar. 5 nov. 2019 à 20:08, Nafise Nouri <nafise.n...@gmail.com> 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 <adelp...@gmail.com> >>> 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 <nafise.n...@gmail.com> 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); >>>>> >>>>