Table of Contents
This is an old revision of the document!
New
ResponseFunction.New(Table) creates a new response function object according to the values in Table. Response functions can be of 4 different types (ListOfPoles, Tri, And, or Nat) and single-valued or matrix-valued. Below 8 examples for creating each of these response functions by hand at some arbitrary values. Arbitrary values here means physically non-relevant and weird but allowed.
ListOfPoles representation
Response functions stored as list of poles are defined via $$ G(\omega,\Gamma) = A_0 + \sum_{i=1}^{n} \frac{B_{i-1}}{\omega + \mathrm{i}\Gamma/2 - a_i} $$
Single valued functions
- Example.Quanty
a = {10, -1,-0.5, 0, 0.5, 1, 1.5} b = { 0.1, 0.1, 0.1, 0.1, 0.2, 0.3} G = ResponseFunction.New( {a,b,mu=0,type="ListOfPoles", name="A"} ) print("The resposne function definition is") print(G) omega = 1.1 Gamma = 0.001 print() print("Evaluated at omega =",omega," and Gamma =",Gamma," yields ",G(omega,Gamma))
Generates the output
The resposne function definition is { { 10 , -1 , -0.5 , 0 , 0.5 , 1 , 1.5 } , { 0.1 , 0.1 , 0.1 , 0.1 , 0.2 , 0.3 } , name = A , type = ListOfPoles , mu = 0 } Evaluated at omega = 1.1 and Gamma = 0.001 yields (11.617645834991 - 0.011148328755289 I)
Matrix valued functions
- Example.Quanty
A0 = Matrix.New( {{0,0,0},{0,0,0},{0,0,0}} ) a1 = -1 a2 = 1/2 a3 = 1 B1s = Matrix.New( {{1,1,3},{1,5,6},{3,6,9}} ) B1 = B1s * B1s B2s = Matrix.New( {{2,0,3},{0,5,6},{3,6,9}} ) B2 = B2s * B2s B3s = Matrix.New( {{3,0,3},{0,5,6},{3,6,9}} ) B3 = B3s * B3s G = ResponseFunction.New( { {A0,a1,a2,a3}, {B1,B2,B3}, mu=0, type="ListOfPoles", name="ML"} ) print("The resposne function definition is") print(G) omega = 1.1 Gamma = 0.001 print() print("Evaluated at omega =",omega," and Gamma =",Gamma," yields ") print(G(omega,Gamma))
Generates the output
{ { { { 0 , 0 , 0 } , { 0 , 0 , 0 } , { 0 , 0 , 0 } } , -1 , 0.5 , 1 } , { { { 11 , 24 , 36 } , { 24 , 62 , 87 } , { 36 , 87 , 126 } } , { { 13 , 18 , 33 } , { 18 , 61 , 84 } , { 33 , 84 , 126 } } , { { 18 , 18 , 36 } , { 18 , 61 , 84 } , { 36 , 84 , 126 } } } , type = ListOfPoles , name = ML , mu = 0 } Evaluated at omega = 1.1 and Gamma = 0.001 yields { { (206.90024667403 - 0.91928020904165 I) , (221.42405005987 - 0.9276985714825 I) , (432.13381820162 - 1.8498699350513 I) } , { (221.42405005987 - 0.9276985714825 I) , (741.17515429623 - 3.1416753933531 I) , (1021.4074723828 - 4.3264255332922 I) } , { (432.13381820162 - 1.8498699350513 I) , (1021.4074723828 - 4.3264255332922 I) , (1529.9683515529 - 6.4891280958856 I) } }
Tridiagonal representation
Response functions stored in tridiagonal format are defined via $$ G(\omega,\Gamma) = A_0 + B_0^* \frac{1}{\omega + \mathrm{i}\Gamma/2 - A_1 - B_{1}^{\phantom{\dagger}} \frac{1}{\omega + \mathrm{i}\Gamma/2 - A_2 - B_{2}^{\phantom{\dagger}} \frac{1}{\omega + \mathrm{i}\Gamma/2 - A_2 - B_{3}^{\phantom{\dagger}} \frac{...}{\omega + \mathrm{i}\Gamma/2 - A_{n-1} - B_{n-1}^{\phantom{\dagger}} \frac{1}{\omega + \mathrm{i}\Gamma/2 - A_n } B_{n-1}^{\dagger}} B_{3}^{\dagger} } B_{2}^{\dagger} } B_{1}^{\dagger} } B_0^T $$
Single valued functions
Matrix valued functions
Anderson representation
Response functions stored in Anderson format are defined via $$ G(\omega,\Gamma) = A_0 + B_0^* \frac{1}{\omega + \mathrm{i}\Gamma/2 - A_1 - \sum_{i=2}^{n} B_{i-1}^{\phantom{\dagger}} \frac{1}{\omega + \mathrm{i}\Gamma/2 - A_{i} } B_{i-1}^{\dagger} } B_0^T $$
Single valued functions
Matrix valued functions
Natural impurity orbital representation
Response functions stored in Natural impurity format are defined via $$ G(\omega,\Gamma) = A_0 + B_0^* \left( G_{val}(\omega,\Gamma) + G_{con}(\omega,\Gamma) \right) B_0^T$$, with $G_{val}(\omega,\Gamma)$ and $G_{con}(\omega,\Gamma)$ as response functions with poles either at positive energy ($G_{con}(\omega,\Gamma)$) or poles at negative energy ($G_{val}(\omega,\Gamma)$).