In [ ]:
from __future__ import print_function
import sisl
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
In the first couple of examples we thave played with the graphene lattice and nearest neighbour interaction.
In this example you should compare the band-structure of a nearest neighbour graphene model and a 3rd nearest neighbour model.
To help you I here list the tight-binding parameters that you should use (see Hancock et. al):
$t_1$ | $t_2$ | $t_3$ | $s_1$ | $s_2$ | $s_3$ | |
---|---|---|---|---|---|---|
A | 2.7 | |||||
D | 2.7 | 0.2 | 0.18 | |||
F | 2.7 | 0.09 | 0.27 | 0.11 | 0.045 | 0.065 |
Note that we have listed 3 tight-binding model parameters, $t_i$ is the coupling to the $i$th nearest neighbour.
Sets A and D are orthogonal basis sets while F is a non-orthogonal basis set.
Start by examining set A and D together, then if you wish, try out the non-orthogonal basis set.
When creating Hamiltonian parameters for the 3rd nearest neighbour model it is imperative that the orbital has the correct radius. The default radius of the graphene orbital is the bond-distance (1.42), i.e.
In [ ]:
print(sisl.geom.graphene().atom)
lists that the maximum orbital radius is 1.43420. Notice it is slightly above the actual bond-distance. This is because we are dealing with floating point numbers where it is crucial to have a certain margin of error when calculating the distance between two atoms (especially for large structures), hence we can without problems increase the radius by a fraction of an Angstrom.
In the 3rd nearest neighbour model it is important to increase the range to capture the distance to the 3rd nearest neighbour.
.distance
function with a very large R
value)Atom(6, R=...)
)
In [ ]: