This is an old revision of the document!


Properties

Tight Binding objects have the following standard properties:

  • Name: a string
  • Cell: {a,b,c} defining the unit cell of the system. a, b and c are vectors of length 3 and define the uni-cell vectors.
  • Atoms: a list of atoms, their positions within the unit cell and their atomic shells (spin-orbitals). Each element has the format {Atom.Name, Atom.Position, {Atom.Shells}}.
  • Hopping: A list of local and non-local hoppings among spin-orbitals. Each element has the format {spinOrb1, spinOrb1, {a,b,c}, $\{\{t_{\downarrow, \downarrow},t_{\downarrow, \uparrow}\},\{t_{\uparrow, \downarrow}, t_{\uparrow, \uparrow}\}\}$}, where here {a,b,c} is the distance between the two atoms and $\{\{t_{\downarrow, \downarrow},t_{\downarrow, \uparrow}\},\{t_{\uparrow, \downarrow}, t_{\uparrow, \uparrow}\}\}$ defines the hopping matrix elements (in second-quantization language: $ \Sigma t_{\sigma, \sigma'} a^{\dagger}_{\sigma} a_{\sigma'} $)
  • Units: {“2Pi”, “Angstrom”, “Absolute”}
  • NF: number of fermionic modes

The Units property is a list of three strings with the following contributions:

  • Units[1]: Sets the scaling for the reciprocal lattice, e.g., $\vec{r}\cdot\vec{g}=2\pi$ for “2Pi” or $\vec{r}\cdot\vec{g}=1$ for “NoPi”.
  • Units[2]: Defines the unit of measurement as “Angstrom”, “Bohr”, or “nanometer”.
  • Units[3]: Selects “Absolute” or “Relative” for the definition of atom positions.

Once a Tight Binding object is created, all properties can be assigned except NF, which is determined by the number of orbitals defined in Atoms.

Example

Two simple examples (with and without spin):

Input

Example.Quanty
-- set parameters
dAB = 0.2
tnn = 1.1
-- create the tight binding Hamiltonian
HTB = NewTightBinding()
HTB.Name = "dichalcogenide tight binding"
HTB.Cell = {{sqrt(3),0,0},
            {sqrt(3/4),3/2,0},
            {0,0,1}}
HTB.Atoms = { {"A", {0,0,0},       {{"p", {"0"}}}},
              {"B", {sqrt(3),1,0}, {{"p", {"0"}}}}}
HTB.Hopping = {{"A.p","A.p",{         0,   0,0},{{-dAB/2}}},
               {"B.p","B.p",{         0,   0,0},{{ dAB/2}}},
               {"A.p","B.p",{         0,   1,0},{{ tnn  }}},
               {"B.p","A.p",{         0,  -1,0},{{ tnn  }}},
               {"A.p","B.p",{ sqrt(3/4),-1/2,0},{{ tnn  }}},
               {"B.p","A.p",{-sqrt(3/4), 1/2,0},{{ tnn  }}},
               {"A.p","B.p",{-sqrt(3/4),-1/2,0},{{ tnn  }}},
               {"B.p","A.p",{ sqrt(3/4), 1/2,0},{{ tnn  }}}
              }
 
print("HTB.Name:")
print(HTB.Name)
 
print("\nHTB.Cell:")
print(HTB.Cell)
 
print("\nHTB.Atoms:")
print(HTB.Atoms)
 
print("\nHTB.Hopping:")
print(HTB.Hopping)
 
print("\nHTB.Units:")
print(HTB.Units)
 
print("\nHTB.NF:")
print(HTB.NF)
 
-- create the tight binding Hamiltonian
HTB = NewTightBinding()
HTB.Name = "dichalcogenide tight binding (with spin)"
HTB.Cell = {{sqrt(3),0,0},
            {sqrt(3/4),3/2,0},
            {0,0,1}}
HTB.Atoms = { {"A", {0,0,0},       {{"p", {"^{dn}","^{up}"}}}},
              {"B", {sqrt(3),1,0}, {{"p", {"^{dn}","^{up}"}}}}}
HTB.Hopping = {{"A.p","A.p",{         0,   0,0},{{-dAB/2, 0}, {0, -dAB/2}}},
               {"B.p","B.p",{         0,   0,0},{{-dAB/2, 0}, {0, -dAB/2}}},
               {"A.p","B.p",{         0,   1,0},{{ tnn, 0  }, { 0, tnn  }}},
               {"B.p","A.p",{         0,  -1,0},{{ tnn, 0  }, { 0, tnn  }}},
               {"A.p","B.p",{ sqrt(3/4),-1/2,0},{{ tnn, 0  }, { 0, tnn  }}},
               {"B.p","A.p",{-sqrt(3/4), 1/2,0},{{ tnn, 0  }, { 0, tnn  }}},
               {"A.p","B.p",{-sqrt(3/4),-1/2,0},{{ tnn, 0  }, { 0, tnn  }}},
               {"B.p","A.p",{ sqrt(3/4), 1/2,0},{{ tnn, 0  }, { 0, tnn  }}}
              }
 
print("HTB.Name:")
print(HTB.Name)
 
print("\nHTB.Cell:")
print(HTB.Cell)
 
print("\nHTB.Atoms:")
print(HTB.Atoms)
 
print("\nHTB.Hopping:")
print(HTB.Hopping)
 
print("\nHTB.Units:")
print(HTB.Units)
 
print("\nHTB.NF:")
print(HTB.NF)

Result

HTB.Name:
dichalcogenide tight binding
 
HTB.Cell:
{ { 1.7320508075689 , 0 , 0 } , 
  { 0.86602540378444 , 1.5 , 0 } , 
  { 0 , 0 , 1 } }
 
HTB.Atoms:
{ { A , 
  { 0 , 0 , 0 } , 
  { { p , 
  { 0 } } } } , 
  { B , 
  { 1.7320508075689 , 1 , 0 } , 
  { { p , 
  { 0 } } } } }
 
HTB.Hopping:
Hopping
 
HTB.Units:
{ 2Pi , Angstrom , Absolute }
 
HTB.NF:
2
HTB.Name:
dichalcogenide tight binding (with spin)
 
HTB.Cell:
{ { 1.7320508075689 , 0 , 0 } , 
  { 0.86602540378444 , 1.5 , 0 } , 
  { 0 , 0 , 1 } }
 
HTB.Atoms:
{ { A , 
  { 0 , 0 , 0 } , 
  { { p , 
  { ^{dn} , ^{up} } } } } , 
  { B , 
  { 1.7320508075689 , 1 , 0 } , 
  { { p , 
  { ^{dn} , ^{up} } } } } }
 
HTB.Hopping:
Hopping
 
HTB.Units:
{ 2Pi , Angstrom , Absolute }
 
HTB.NF:
4

Table of contents

Print/export