Table of Contents
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
description text
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