Hello Adel and Christoph,
Thanks for the suggestion and explanation!
I finally found a workaround to avoid any additionally added sites. Every lead
is connected just as expected. The trick is to define each lead and attach
their reversed() only. I put the modified part of the code here in case that
anyone else finds it helpful.
neg_direc = [(-mx,-my),(my,-mx)] # (negative) X-axis & Y-axis rotated from old
x- & y-axis
pos_direc = [(mx,my),(-my,mx)] # (positive) X-axis & Y-axis rotated from old x-
& y-axis
direcI = 0 # lead along which rotated axis: 0 for X, 1 for Y
direcIp = 1 # the other axis
...
sym0 = kwant.TranslationalSymmetry(neg_direc[direcI])
sym0.add_site_family(lat, other_vectors=[neg_direc[direcIp]])
sym1 = kwant.TranslationalSymmetry(pos_direc[direcI])
sym1.add_site_family(lat, other_vectors=[pos_direc[direcIp]])
syms = [sym0, sym1]
for sym in syms:
lead = kwant.Builder(sym)
lead[lat.shape(lead_reg, (0,0))] = 4*t # (0,0) should work for I-leads
as they fully cover the boundary surface
lead[kwant.builder.HoppingKind((1, 0), lat, lat)] = t
lead[kwant.builder.HoppingKind((0, 1), lat, lat)] = t
syst.attach_lead(lead.reversed()) # this avoids additionally added sites