====== NewTightBinding ======
//NewTightBinding()// initiates a Tight Binding object with the following standard properties:
* Name: "" (empty string)
* Cell: {a,b,c} with a, b, c as random vectors.
* Atoms: {}
* Units: {"2Pi", "Angstrom", "Absolute"}
* NF: `0` (number of orbitals defined in Atoms)
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\\.
===== Input =====
===== Output =====
* A Tight Binding Object
===== Example =====
==== Input ====
--
### Input
```lua
-- Create the tight binding Hamiltonian
HTB = NewTightBinding()
print("Printing the TB Object")
print(HTB)
print("Callable Properties:")
print("Cell:", HTB.Cell)
print("Units:", HTB.Units)
print("Atoms:", HTB.Atoms)
print("Hopping:", HTB.Hopping)
print("NF:", HTB.NF)
t1 = 1
t2 = 2
HTB.Name = "My wishes for dinner"
HTB.Units = {"2Pi", "Bohr", "Relative"}
HTB.Cell = {
{1, 0, 0},
{0, 1, 0},
{0, 0, 1}
}
HTB.Atoms = {
{"pizza", {0, 0, 0}, {{"Margherita", {"0"}}}},
{"pasta", {0, 1, 0}, {{"Pesto", {"0"}}, {"Carbonara", {"0"}}}}
}
HTB.Hopping = {
{"pizza.Margherita", "pasta.Pesto", {0, 1, 0}, {{t1}}},
{"pasta.Pesto", "pizza.Margherita", {0, -1, 0}, {{t1}}},
{"pizza.Margherita", "pasta.Carbonara", {0, 1, 0}, {{t2}}},
{"pasta.Carbonara", "pizza.Margherita", {0, -1, 0}, {{t2}}}
}
==== Result ====
Printing the TB Object
Settings of a tight binding model:
printout of Crystal Structure
Units: 2Pi (g.r=2Pi) Angstrom Absolute atom positions
Unit cell parameters:
a: 0.0000000 0.0000000 0.0000000
b: 0.0000000 0.0000000 0.0000000
c: 0.0000000 0.0000000 0.0000000
Reciprocal latice:
a: 0.0000000 30524692131128596033898117733842076213019192344605263171345790071216510328003874622266126017805876259535366806940969625873947115114721700264263639077479994600233826779136.0000000 1469218886842792161082556356812066608987064236852910356089627265978131596617755845105555332403223378390597352733941003451523713467849651601093598519555579669832275433929014952247745114139290238976.0000000
b: 0.0000000 0.0000000 90960625277508849958397981692689239784491225441894123063561438202878853747680593734840616283814676646691536819002770131304362257795846217274641593397548217458628790833363103687190963464137327730221337512979694186028748242944.0000000
c: 0.0000000 14107223910934044308904371602649936698982067006821564283097987256794599528798179656616663629775957882874925536671725932884293417340363744679036673366848766811353566910460765161922523069153280.0000000 73429234843382957416571002197742812553809563142104530001750273049746504128625765208852406031284161247014915814559263665977548191119922018187373791315790938478048641072290406586019038135878180088386949792875281819263322554368.0000000
Number of atoms 0
Containing a total number of 0 orbitals
Hopping definitions ( 0 )
Callable Properties:
Cell: { { 6.0134700169991e-154 , 1.0216608544487e-259 , 2.7856078039899e-91 } ,
{ 4.4759381595362e-91 , 4.4759381595362e-91 , 4.4759381595362e-91 } ,
{ 4.4759381595362e-91 , 4.4759381595362e-91 , 4.4759381595362e-91 } }
Units: { 2Pi , Angstrom , Absolute }
Atoms: { }
Hopping: Hopping
NF: 0
Settings of a tight binding model: My wishes for dinner
printout of Crystal Structure
Units: 2Pi (g.r=2Pi) Bohr Relative atom positions
Unit cell parameters:
a: 1.0000000 0.0000000 0.0000000
b: 0.0000000 1.0000000 0.0000000
c: 0.0000000 0.0000000 1.0000000
Reciprocal latice:
a: 6.2831853 0.0000000 0.0000000
b: 0.0000000 6.2831853 0.0000000
c: 0.0000000 0.0000000 6.2831853
Number of atoms 2
# 0 | pizza ( 0 ) at position { 0.0000000 , 0.0000000 , 0.0000000 }
| Margherita shell with 1 orbitals { 0 }
# 1 | pasta ( 0 ) at position { 0.0000000 , 1.0000000 , 0.0000000 }
| Pesto shell with 1 orbitals { 0 }
| Carbonara shell with 1 orbitals { 0 }
Containing a total number of 3 orbitals
Hopping definitions ( 4 )
Hopping from 0 : pizza - Margherita to 1 : pasta - Pesto with translation vector in unit cells: { 0 , 1 , 0 } ({ 0.00000000E+00 1.00000000E+00 0.00000000E+00 })
Matrix =
Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums])
[ 0]
[ 0] 1.00000000E+00
Hopping from 1 : pasta - Pesto to 0 : pizza - Margherita with translation vector in unit cells: { 0 , -1 , 0 } ({ 0.00000000E+00 -1.00000000E+00 0.00000000E+00 })
Matrix =
Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums])
[ 0]
[ 0] 1.00000000E+00
Hopping from 0 : pizza - Margherita to 1 : pasta - Carbonara with translation vector in unit cells: { 0 , 1 , 0 } ({ 0.00000000E+00 1.00000000E+00 0.00000000E+00 })
Matrix =
Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums])
[ 0]
[ 0] 2.00000000E+00
Hopping from 1 : pasta - Carbonara to 0 : pizza - Margherita with translation vector in unit cells: { 0 , -1 , 0 } ({ 0.00000000E+00 -1.00000000E+00 0.00000000E+00 })
Matrix =
Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums])
[ 0]
[ 0] 2.00000000E+00
===== Table of contents =====
{{indexmenu>.#1}}