====== 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}}