{{indexmenu_n>999}}
====== Hopping ======
//TB.Hopping//: A list of local and non-local hoppings among atomic shells. Each element has the format {Atom1.Shell_i, Atom2.Shell_j, {a,b,c}, T}, where here {a,b,c} is the distance between the two atoms and T is an array defines the hopping matrix elements among the spin-orbitals of Atom1.Shell_i and Atom1.Shell_j . (in second-quantization language: $ \Sigma t_{\sigma, \sigma'} a^{\dagger}_{\sigma} a_{\sigma'} $)
===== Example =====
###
Two simple examples (with and without spin):
###
==== Input ====
-- 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.NAtoms:")
print(HTB.NAtoms)
print("\nHTB.Hopping:")
print(HTB.Hopping)
print("\nHTB.Units:")
print(HTB.Units)
print("\nHTB.NF:")
print(HTB.NF)
print("\nHTB.Hk:")
print(HTB.Hk)
print("\nHTB.ReciprocalCell:")
print(HTB.ReciprocalCell)
-- 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.NAtoms:")
print(HTB.NAtoms)
print("\nHTB.Hopping:")
print(HTB.Hopping)
print("\nHTB.Units:")
print(HTB.Units)
print("\nHTB.NF:")
print(HTB.NF)
print("\nHTB.Hk:")
print(HTB.Hk)
print("\nHTB.ReciprocalCell:")
print(HTB.ReciprocalCell)
==== 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.NAtoms:
2
HTB.Hopping:
Hopping
HTB.Units:
{ 2Pi , Angstrom , Absolute }
HTB.NF:
2
HTB.Hk:
Hk
HTB.ReciprocalCell:
{ { 3.6275987284684 , -2.0943951023932 , 0 } ,
{ 0 , 4.1887902047864 , 0 } ,
{ 0 , 0 , 6.2831853071796 } }
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.NAtoms:
2
HTB.Hopping:
Hopping
HTB.Units:
{ 2Pi , Angstrom , Absolute }
HTB.NF:
4
HTB.Hk:
Hk
HTB.ReciprocalCell:
{ { 3.6275987284684 , -2.0943951023932 , 0 } ,
{ 0 , 4.1887902047864 , 0 } ,
{ 0 , 0 , 6.2831853071796 } }
===== Table of contents =====
{{indexmenu>.#1|msort}}