---------- Forwarded message --------- De : Adel Belayadi <[email protected]> Date: mer. 27 nov. 2019 Γ 20:27 Subject: Re: [Kwant] Tags and sites To: EUDES THOMAS GOMES DA SILVA <[email protected]>
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 Ο (nβq, mβq ). =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 < [email protected]> 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. > > > > > > > > > >
