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);

Reply via email to