Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| documentation:language_reference:objects:responsefunction:functions:totightbinding [2024/12/23 09:13] – Maurits W. Haverkort | documentation:language_reference:objects:responsefunction:functions:totightbinding [2025/11/04 11:19] (current) – Johann Collard | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| {{indexmenu_n> | {{indexmenu_n> | ||
| - | ====== | + | ====== |
| ### | ### | ||
| - | ResponseFunction.ToTightbinding(G) transforms a response function object to a tight binding object that, when solved, has the response function $G$ as its one particle Green' | + | ResponseFunction.ToTightBinding(G) transforms a response function object to a tight binding object that, when solved, has the response function $G$ as its one particle Green' |
| ### | ### | ||
| Line 13: | Line 13: | ||
| ### | ### | ||
| - | In the figure above we show the different tight binding layouts corresponding to the different response function representations. Panel (a) for tridiagonal, panel (b) for Anderson | + | In the figure above (from [[https:// |
| ### | ### | ||
| + | ### | ||
| + | For all representations the table $A$ refers to the onsite energies of the sites and the table $B$ to the hopping between sites. $A_0$ and $B_0$ can not be represented in a tight binding Hamiltonian. The one particle Green' | ||
| + | ### | ||
| ====== Tri-diagonal representation ====== | ====== Tri-diagonal representation ====== | ||
| + | The Green' | ||
| + | ===== Example ===== | ||
| + | |||
| + | ### | ||
| + | We here create a one dimensional tight binding model with a single $s$-orbital. We then create a // | ||
| + | ### | ||
| + | |||
| + | ==== Input ==== | ||
| + | <code Quanty Example.Quanty> | ||
| + | -- Define a tight binding Hamiltonian for an infinite 1 dimensional chain | ||
| + | HTB = NewTightBinding() | ||
| + | HTB.Name = "1D tight binding" | ||
| + | HTB.Cell = {{1,0,0}, | ||
| + | {0,1,0}, | ||
| + | {0,0,1}} | ||
| + | HTB.Atoms = { {" | ||
| + | HTB.Hopping = { {" | ||
| + | {" | ||
| + | -- create an operator representing a 10 site supercell with periodic boundary conditions | ||
| + | HCl = CreateClusterHamiltonian(HTB, | ||
| + | -- calculate the vacuum one-particle Green' | ||
| + | vacStr="" | ||
| + | for i=1,HCl.NF do | ||
| + | vacStr=vacStr.." | ||
| + | end | ||
| + | psivac = NewWavefunction(HCl.NF, | ||
| + | a0Cr = NewOperator(HCl.NF, | ||
| + | S, G = CreateSpectra(HCl, | ||
| + | -- change the one-particle Green' | ||
| + | GTri = ResponseFunction.ChangeType(G," | ||
| + | GTri.Chop(1E-12, | ||
| + | GTri.name = "G in Tridiagonal representation" | ||
| + | print(" | ||
| + | print(GTri) | ||
| + | -- change the Green' | ||
| + | HTB2 = Chop( ResponseFunction.ToTightBinding(GTri) ) | ||
| + | print(" | ||
| + | print(HTB2) | ||
| + | </ | ||
| + | |||
| + | ==== Result ==== | ||
| + | <file Quanty_Output> | ||
| + | The one particle Green' | ||
| + | { { { { 0 } } , | ||
| + | { { 0 } } , | ||
| + | { { 0 } } , | ||
| + | { { 0 } } , | ||
| + | { { 0 } } , | ||
| + | { { 0 } } , | ||
| + | { { 0 } } } , | ||
| + | { { { 1 } } , | ||
| + | { { 1.4142135623731 } } , | ||
| + | { { 1 } } , | ||
| + | { { 1 } } , | ||
| + | { { 1 } } , | ||
| + | { { 1.4142135623731 } } } , | ||
| + | type = Tri , | ||
| + | name = G in Tridiagonal representation , | ||
| + | BlockSize = { 1 , 1 , 1 , 1 , 1 , 1 , 1 } , | ||
| + | mu = 0 } | ||
| + | A tight binding Hamiltonian with the same one particle Green' | ||
| + | |||
| + | Settings of a tight binding model: G in Tridiagonal representation | ||
| + | |||
| + | printout of Crystal Structure | ||
| + | Units: NoPi (g.r=1) | ||
| + | Unit cell parameters: | ||
| + | a: | ||
| + | b: | ||
| + | c: | ||
| + | Reciprocal latice: | ||
| + | a: | ||
| + | b: | ||
| + | c: | ||
| + | Number of atoms 6 | ||
| + | # 0 | 0 ( 0 ) at position { | ||
| + | | x shell with 1 orbitals { 0 } | ||
| + | # 1 | 1 ( 0 ) at position { | ||
| + | | x shell with 1 orbitals { 0 } | ||
| + | # 2 | 2 ( 0 ) at position { | ||
| + | | x shell with 1 orbitals { 0 } | ||
| + | # 3 | 3 ( 0 ) at position { | ||
| + | | x shell with 1 orbitals { 0 } | ||
| + | # 4 | 4 ( 0 ) at position { | ||
| + | | x shell with 1 orbitals { 0 } | ||
| + | # 5 | 5 ( 0 ) at position { | ||
| + | | x shell with 1 orbitals { 0 } | ||
| + | Containing a total number of 6 orbitals | ||
| + | Hopping definitions ( 5 ) | ||
| + | Hopping from 0 : 0 - x to 1 : 1 - x with translation vector in unit cells: { 0 , 0 , 0 } ({ 0.00000000E+00 | ||
| + | Matrix = | ||
| + | Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums]) | ||
| + | [ 0] | ||
| + | [ | ||
| + | |||
| + | Hopping from 1 : 1 - x to 2 : 2 - x with translation vector in unit cells: { 0 , 0 , 0 } ({ 0.00000000E+00 | ||
| + | Matrix = | ||
| + | Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums]) | ||
| + | [ 0] | ||
| + | [ | ||
| + | |||
| + | Hopping from 2 : 2 - x to 3 : 3 - x with translation vector in unit cells: { 0 , 0 , 0 } ({ 0.00000000E+00 | ||
| + | Matrix = | ||
| + | Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums]) | ||
| + | [ 0] | ||
| + | [ | ||
| + | |||
| + | Hopping from 3 : 3 - x to 4 : 4 - x with translation vector in unit cells: { 0 , 0 , 0 } ({ 0.00000000E+00 | ||
| + | Matrix = | ||
| + | Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums]) | ||
| + | [ 0] | ||
| + | [ | ||
| + | |||
| + | Hopping from 4 : 4 - x to 5 : 5 - x with translation vector in unit cells: { 0 , 0 , 0 } ({ 0.00000000E+00 | ||
| + | Matrix = | ||
| + | Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums]) | ||
| + | [ 0] | ||
| + | [ | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ====== Anderson representation ====== | ||
| + | |||
| + | The Green' | ||
| ===== Example ===== | ===== Example ===== | ||
| ### | ### | ||
| - | description text | + | We here create a one dimensional tight binding model with a single $s$-orbital. We then create a // |
| ### | ### | ||
| ==== Input ==== | ==== Input ==== | ||
| <code Quanty Example.Quanty> | <code Quanty Example.Quanty> | ||
| - | -- some example code | + | -- Define a tight binding Hamiltonian for an infinite 1 dimensional chain |
| + | HTB = NewTightBinding() | ||
| + | HTB.Name = "1D tight binding" | ||
| + | HTB.Cell = {{1,0,0}, | ||
| + | {0,1,0}, | ||
| + | {0,0,1}} | ||
| + | HTB.Atoms = { {" | ||
| + | HTB.Hopping = { {" | ||
| + | {" | ||
| + | -- create an operator representing a 10 site supercell with periodic boundary conditions | ||
| + | HCl = CreateClusterHamiltonian(HTB, | ||
| + | -- calculate the vacuum one-particle Green' | ||
| + | vacStr="" | ||
| + | for i=1,HCl.NF do | ||
| + | vacStr=vacStr.." | ||
| + | end | ||
| + | psivac = NewWavefunction(HCl.NF, | ||
| + | a0Cr = NewOperator(HCl.NF, | ||
| + | S, G = CreateSpectra(HCl, | ||
| + | -- change the one-particle Green' | ||
| + | GAnd = ResponseFunction.ChangeType(G," | ||
| + | GAnd.Chop(1E-12, | ||
| + | GAnd.name = "G in Anderson representation" | ||
| + | print(" | ||
| + | print(GAnd) | ||
| + | -- change the Green' | ||
| + | HTB2 = Chop( ResponseFunction.ToTightBinding(GAnd) ) | ||
| + | print(" | ||
| + | print(HTB2) | ||
| </ | </ | ||
| ==== Result ==== | ==== Result ==== | ||
| <file Quanty_Output> | <file Quanty_Output> | ||
| - | text produced | + | The one particle Green' |
| + | { { { { 0 } } , | ||
| + | { { 0 } } , | ||
| + | { { -1.9021130325903 } } , | ||
| + | { { -1.1755705045849 } } , | ||
| + | { { 0 } } , | ||
| + | { { 1.1755705045849 } } , | ||
| + | { { 1.9021130325903 } } } , | ||
| + | { { { 1 } } , | ||
| + | { { 0.27639320225002 } } , | ||
| + | { { -0.72360679774998 } } , | ||
| + | { { -0.89442719099992 } } , | ||
| + | { { -0.72360679774998 } } , | ||
| + | { { 0.27639320225002 } } } , | ||
| + | name = G in Anderson representation , | ||
| + | mu = 0 , | ||
| + | type = And } | ||
| + | A tight binding Hamiltonian with the same one particle Green' | ||
| + | |||
| + | Settings of a tight binding model: G in Anderson representation | ||
| + | |||
| + | printout of Crystal Structure | ||
| + | Units: NoPi (g.r=1) | ||
| + | Unit cell parameters: | ||
| + | a: | ||
| + | b: | ||
| + | c: | ||
| + | Reciprocal latice: | ||
| + | a: | ||
| + | b: | ||
| + | c: | ||
| + | Number of atoms 6 | ||
| + | # 0 | 0 ( 0 ) at position { | ||
| + | | x shell with 1 orbitals { 0 } | ||
| + | # 1 | 1 ( 0 ) at position { | ||
| + | | x shell with 1 orbitals { 0 } | ||
| + | # 2 | 2 ( 0 ) at position { | ||
| + | | x shell with 1 orbitals { 0 } | ||
| + | # 3 | 3 ( 0 ) at position { | ||
| + | | x shell with 1 orbitals { 0 } | ||
| + | # 4 | 4 ( 0 ) at position { | ||
| + | | x shell with 1 orbitals { 0 } | ||
| + | # 5 | 5 ( 0 ) at position { | ||
| + | | x shell with 1 orbitals { 0 } | ||
| + | Containing a total number of 6 orbitals | ||
| + | Hopping definitions ( 9 ) | ||
| + | Hopping from 1 : 1 - x to 1 : 1 - x with translation vector in unit cells: { 0 , 0 , 0 } ({ 0.00000000E+00 | ||
| + | Matrix = | ||
| + | Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums]) | ||
| + | [ 0] | ||
| + | [ 0] -1.90211303E+00 | ||
| + | |||
| + | Hopping from 2 : 2 - x to 2 : 2 - x with translation vector in unit cells: { 0 , 0 , 0 } ({ 0.00000000E+00 | ||
| + | Matrix = | ||
| + | Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums]) | ||
| + | [ 0] | ||
| + | [ 0] -1.17557050E+00 | ||
| + | |||
| + | Hopping from 4 : 4 - x to 4 : 4 - x with translation vector in unit cells: { 0 , 0 , 0 } ({ 0.00000000E+00 | ||
| + | Matrix = | ||
| + | Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums]) | ||
| + | [ 0] | ||
| + | [ | ||
| + | |||
| + | Hopping from 5 : 5 - x to 5 : 5 - x with translation vector in unit cells: { 0 , 0 , 0 } ({ 0.00000000E+00 | ||
| + | Matrix = | ||
| + | Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums]) | ||
| + | [ 0] | ||
| + | [ | ||
| + | |||
| + | Hopping from 0 : 0 - x to 1 : 1 - x with translation vector in unit cells: { 0 , 0 , 0 } ({ 0.00000000E+00 | ||
| + | Matrix = | ||
| + | Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums]) | ||
| + | [ 0] | ||
| + | [ | ||
| + | |||
| + | Hopping from 0 : 0 - x to 2 : 2 - x with translation vector in unit cells: { 0 , 0 , 0 } ({ 0.00000000E+00 | ||
| + | Matrix = | ||
| + | Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums]) | ||
| + | [ 0] | ||
| + | [ 0] -7.23606798E-01 | ||
| + | |||
| + | Hopping from 0 : 0 - x to 3 : 3 - x with translation vector in unit cells: { 0 , 0 , 0 } ({ 0.00000000E+00 | ||
| + | Matrix = | ||
| + | Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums]) | ||
| + | [ 0] | ||
| + | [ 0] -8.94427191E-01 | ||
| + | |||
| + | Hopping from 0 : 0 - x to 4 : 4 - x with translation vector in unit cells: { 0 , 0 , 0 } ({ 0.00000000E+00 | ||
| + | Matrix = | ||
| + | Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums]) | ||
| + | [ 0] | ||
| + | [ 0] -7.23606798E-01 | ||
| + | |||
| + | Hopping from 0 : 0 - x to 5 : 5 - x with translation vector in unit cells: { 0 , 0 , 0 } ({ 0.00000000E+00 | ||
| + | Matrix = | ||
| + | Real Part of Matrix with dimensions [Ni=1][Nj=1] ([Rows][Collums]) | ||
| + | [ 0] | ||
| + | [ | ||
| </ | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| ===== Table of contents ===== | ===== Table of contents ===== | ||
| {{indexmenu> | {{indexmenu> | ||