Dear Gabriel,
You have a "Dimensionality mismatch": Use the same dimension for the two lattices.
If you are still using two different lattices, then go and check the FAQ [1] where you have a nice example about combining graphene with a square lattice.

I hope this helps,
Adel

[1] https://kwant-project.org/doc/1/tutorial/faq

On Tue, Jun 6, 2023 at 5:55 PM Gabriel Garcia <gqgarcia99@gmail.com> wrote:
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


--
Abbout Adel