---------- Forwarded message ---------
De : Adel Belayadi <adelphys@gmail.com>
Date: mer. 27 nov. 2019 à 20:27
Subject: Re: [Kwant] Tags and sites
To: EUDES THOMAS GOMES DA SILVA <eudes.gomes@ufrpe.br>


Dear EUDES,


why  can tags assume only integers values?

 

In fact, the tight binding approach works like the discretized Schrodinger equation see Ref [1]. In this context each site is defined by an integer lattice coordinates (𝑖, 𝑗) which provide the real-space coordinates (𝑥, 𝑦) as  (a1*n,  a2*m ).

 

Once you define the primitive vector of the system let’s say 𝑎1 and 𝑎2,  so the translation to get the whole lattice leads to write  𝑅 = 𝑛𝑎1 + m𝑎2. Here n and m are integer which refer to the tag in kwant. So building the whole lattice has nothing to with real space position( since we use translation as 𝑅 = 𝑛𝑎1 + m𝑎2 ).

 

Now the most important task is to define the hopping between neighboring atoms. A hopping is created between the main cell (for instance (0, 0) ) and a neighboring cell specified by relative index such as (0, 1) and (1, 0).

For more explanation, see the enclosed figure ( in case of square lattice )


Additionally, remember that when we use the Bloch theorem. The wave function for a periodic lattice is defined by a phase factor: For instance let as say φ (nq, mq ). =exp(±iqakx)*exp(±iqaky) φ (n, m). Where q in an integer that way we deal with integer not with space positions.

Ps: Ref[1]: Timothy B. Boykin. The discretized Schrodinger equation and simplemodels for semiconductor quantum wells
best, Adel

Le mar. 26 nov. 2019 à 20:29, EUDES THOMAS GOMES DA SILVA <eudes.gomes@ufrpe.br> a écrit :
Hi Dears,

why  can tags assume only integers values?

For example:

lat = kwant.lattice.Polyatomic([(1, 0, 0), (0, 1, 0),(0, 0, 1)], [(1, 0, 0), (0.0, 1, 0.0),(0.0, 0.0, 1)],norbs=1)
syst = kwant.Builder()

# it is possible:
syst[a(1,0,0)]=4

and syst[a(1.5,0,0)]=4 

gives me the same result as before?

Both of them says:

>>> a(1,0,0)

Site(kwant.lattice.Monatomic([[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]], [0.0, 0.0, 0.0], '0', 1), array([1, 0, 0]))

>>> a(1.5,0,0)

Site(kwant.lattice.Monatomic([[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]], [0.0, 0.0, 0.0], '0', 1), array([1, 0, 0]))

The later should be: 

Site(kwant.lattice.Monatomic([[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]], [0.0, 0.0, 0.0], '0', 1), array([1.5, 0, 0]))

best regards.

Eudes.