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.
-
ReciprocalCell: {a,b,c} the reciprocal cell, satisfying the condition $\vec{r}\cdot\vec{g}=2\pi$, where $\vec{r}$ are the unit-cell vectors and $\vec{g}$ are the reciprocal-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}}.
-
NAtoms: number of atoms in TB.Atoms
-
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: {Units[1], Units[2], Units[3]} (see below)
-
NF: number of fermionic modes
-
Hk: …
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”. (standard value “2Pi”)
-
Units[2]: Defines the unit of measurement as “Angstrom”, “Bohr”, or “nanometer”. (standard value “Angstrom”)
-
Units[3]: Selects “Absolute” or “Relative” for the definition of atom positions. (standard value “Absolute”)
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. See also NewTightBinding().
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