Nearest neighbour hoppings in TBModels for kwant

TBModels is a python module that belongs to the Z2Pack toolkit, and can be used to constructuct Tight Binding models to be used with Kwant software for transport calculations using the Landauer-Buttinker formula.

When deriving Hamiltonian matrices from first principles with Wannier90 for kwant, TBmodels will restore all the hoppings between adjacent unit cells. This can be proven very time-consuming both when preparing and solving systems with lots of atoms. Often, only nearest neighbor (nn) interactions are needed, especially if next-nearest neighbor (nnn) etc. decay considerably that can be safely ignored.

For example, in my system, WFs 4 and 2 are neighbors. When looking at the Wannier_hr.dat file, I see the following:

0 0 0 4 2 -1.287933 0.000000

[…]

0 1 0 4 2 0.056218 0.000000

[…]

0 2 0 4 2 0.004991 -0.000000

[…]

0 3 0 4 2 0.008744 -0.000000

[…]

0 4 0 4 2 -0.004063 -0.000000

The first three numbers signify the unit cell, which is [0,0,0] in the home, [0,1,0] one hop in the y direction, [0,2,0] two hops in the y direction etc. The next numbers are the WFs (namely 4 and 2) and the last term is the hopping term. In my system, there is no repetition in the z direction, and so only x and y are important. z stays 0.

Continue reading