Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
documentation:language_reference:objects:tightbinding:properties:start [2024/09/16 14:03] Sina Shokridocumentation:language_reference:objects:tightbinding:properties:start [2024/09/18 18:08] (current) Sina Shokri
Line 2: Line 2:
 ====== Properties ====== ====== Properties ======
  
-### 
 Tight Binding objects have the following standard properties: Tight Binding objects have the following standard properties:
  
   * Name: a string   * 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.   * 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}}.  +  * 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. 
-  * Hoppings: 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'} $) +  * 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}}. The Atom.Shells can be a list of atomic shell with arbitrary number of orbitals, including or not including spinFor example: {"H", {0,0,0}, { {"s", {"^{dn}""^{up}"}, {"p" {"_y^{dn}", "_y^{up}""_z^{dn}""_z^{up}""_x^{dn}""_x^{up}"} } } } } . 
-  * Units: {“2Pi”“Angstrom”“Absolute”}  +  * NAtoms: number of atoms in //TB.Atoms// 
-  * NF: number of fermionic modes +  * 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'} $) 
-###+  * Units: {Units[1]Units[2]Units[3](see below) 
 +  * NF: number of fermionic modes  
 + 
 +The //Units// property is a list of three strings with the following components:  
 +  * 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"
 + 
 +For creating a tight-binding object, one needs to define at least the properties //TB.Cell//, //TB.Atoms// and //TB.Hopping//. The rest of the properties will be either automatically calculated or will be set with standard values (//TB.Name// and //TB.Units//). See also //[[documentation:language_reference:functions:NewTightBinding|NewTightBinding()]]//.
  
 ===== Example ===== ===== Example =====
  
 ### ###
-description text+Two simple examples (with and without spin):
 ### ###
  
 ==== Input ==== ==== Input ====
 <code Quanty Example.Quanty> <code Quanty Example.Quanty>
--- some example code+-- 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)
 </code> </code>
  
 ==== Result ==== ==== Result ====
 <file Quanty_Output> <file Quanty_Output>
-text produced as output+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: 
 +
 + 
 +HTB.Hopping: 
 +Hopping 
 + 
 +HTB.Units: 
 +{ 2Pi , Angstrom , Absolute } 
 + 
 +HTB.NF: 
 +
 + 
 +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: 
 +
 + 
 +HTB.Hopping: 
 +Hopping 
 + 
 +HTB.Units: 
 +{ 2Pi , Angstrom , Absolute } 
 + 
 +HTB.NF: 
 +
 + 
 +HTB.Hk: 
 +Hk 
 + 
 +HTB.ReciprocalCell: 
 +{ { 3.6275987284684 , -2.0943951023932 , 0 } ,  
 +  { 0 , 4.1887902047864 , 0 } ,  
 +  { 0 , 0 , 6.2831853071796 } }
 </file> </file>
  
Print/export