Dear sir,
I am trying to generate a triangular graphene structure by using Kwant by
giving three real space coordinates for three vertices.
1. However, the code does not work for specific coordinates. i.e., the
structure doesn't plot as per the given coordinates. is there any problem with
my code?
2. Additionally, I am unable to know what the function of giving one real space
position is while calling the shape function i.e.,
model1[lat.shape(lower_tri,(40,40))] = 0
Please find the code below
################################### code ######
import kwant
import numpy as np
lat=kwant.lattice.honeycomb(a=2.46,norbs=1)
a,b=lat.sublattices
def lower_tri(pos):
x,y=pos
#################
#Real space position it works
xl2 = 20
yl2 = 0
xl1 = 20
yl1 = 60
yl3 = 0
xl3 = 0
#######################
#Real space position it does not work
# xl2 = 50
# yl2 = 0
# xl1 = 50
# yl1 = 60
# yl3 = 0
# xl3 = 25
######################## Triangle equation #########
D = xl1*yl2 - xl2*yl1+ yl3*xl2 - xl3*yl2 + xl3*yl1 -xl1*yl3
k1 = (2*yl1 - yl2 -yl3)*x + (-2*xl1+xl2+xl3)*y + xl1*yl2 - xl2*yl1
+ xl1*yl3 - xl3*yl1
m1 = (2*yl2-2*yl3)*x + (-2*xl2 + 2*xl3)*y - xl1*yl2 + xl2*yl1
+ xl2*yl3 + xl3*yl2 + xl1*yl3 -xl3*yl1
K = k1/D
M = m1/D
return np.abs(K) + np.abs(M + np.abs(K))<=1
model1 = kwant.Builder()
model1[lat.shape(lower_tri,(1,1))]=0
#model1[lat.shape(lower_tri,(40,40))] = 0
model1[lat.neighbors()] = 2.64
kwant.plot(model1)
###################################
pls find attached image
https://drive.google.com/file/d/123qsy_HiA0dlCT8nwhC9JdaJgJnvQ3P3/view?usp=sharing