Hi devs,
I am learning kwant alone, but i have doubts. I am trying to construct a system with a diatomic chain as scattering region and the leads as a monoatomic chain. But i am doing something wrong. Someone else can help me? Bellow i will show the code:
#####################################################################################################################
from matplotlib import pyplot as plt
from matplotlib import backends
import kwant
# Defining the parameters
L = 5 # range of scattering region
C = 2 # primitive vector
# Definindo o parametro de Hopping
t = 5 # hopping parameter
lat = kwant.lattice.general([(C,0),(0,1)],[(0,0),(1,0)], norbs=1)
a, b = lat.sublattices
syst = kwant.Builder()
# Scattering region
for i in range(L):
syst[a(i, 0)] = 0
syst[b(i, 0)] = 0
syst[kwant.builder.HoppingKind((0, 0), a, b)] = -t
syst[kwant.builder.HoppingKind((1, 0), b, a)] = -t
kwant.plot(syst)
plt.show()
# leaft lead (lead 1)
lat_lead1 = kwant.lattice.chain(C, norbs=1)
sym_lead1 = kwant.TranslationalSymmetry((-C, 0))
lead1 = kwant.Builder(sym_lead1)
lead1[lat_lead(0,0)] = 4*t
lead1[lat_lead1.neighbors()] = -t
syst[(lat_lead1(-C, 0), a(0, 0))] = -t
syst.attach_lead(lead1)
kwant.plot(syst)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
~\anaconda3\lib\site-packages\kwant\builder.py in __new__(cls, family, tag, _i_know_what_i_do)
75 try:
---> 76 tag = family.normalize_tag(tag)
77 except (TypeError, ValueError) as e:
~\anaconda3\lib\site-packages\kwant\lattice.py in normalize_tag(self, tag)
475 if len(tag) != self.lattice_dim:
--> 476 raise ValueError("Dimensionality mismatch.")
477 return tag
ValueError: Dimensionality mismatch.
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
<ipython-input-46-3d36b05d2870> in <module>
8 lead1[lat_lead1.neighbors()] = -t
9
---> 10 syst[(lat_lead1(-C, 0), a(0, 0))] = -t
11
12 syst.attach_lead(lead1)
~\anaconda3\lib\site-packages\kwant\builder.py in __call__(self, *tag)
195 raise ValueError('Use site_family(1, 2) instead of '
196 'site_family((1, 2))!')
--> 197 return Site(self, tag)
198
199
~\anaconda3\lib\site-packages\kwant\builder.py in __new__(cls, family, tag, _i_know_what_i_do)
77 except (TypeError, ValueError) as e:
78 msg = 'Tag {0} is not allowed for site family {1}: {2}'
---> 79 raise type(e)(msg.format(repr(tag), repr(family), e.args[0]))
80 return tuple.__new__(cls, (family, tag))
81
ValueError: Tag (-2, 0) is not allowed for site family kwant.lattice.Monatomic([[2.0]], [0.0], '', 1): Dimensionality mismatch.
#############################################################################################
Thanks!
Gabriel Garcia