| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| documentation:language_reference:objects:responsefunction:start [2024/12/18 16:42] – Maurits W. Haverkort | documentation:language_reference:objects:responsefunction:start [2025/11/20 04:15] (current) – external edit 127.0.0.1 |
|---|
| Internally response functions can be stored in different formats. We need several formats as (1) transformations between the different formats take time (2) transformations between different formats can involve a loss of numerical accuracy and (3) different algorithms require the response function in different formats. The formats used in Quanty to store response functions are | Internally response functions can be stored in different formats. We need several formats as (1) transformations between the different formats take time (2) transformations between different formats can involve a loss of numerical accuracy and (3) different algorithms require the response function in different formats. The formats used in Quanty to store response functions are |
| - List of poles $$ G(\omega,\Gamma) = A_0 + \sum_{i=1}^{n} B_{i-1} \frac{1}{\omega + \mathrm{i}\Gamma/2 - a_i} $$ | - List of poles $$ G(\omega,\Gamma) = A_0 + \sum_{i=1}^{n} B_{i-1} \frac{1}{\omega + \mathrm{i}\Gamma/2 - a_i} $$ |
| - Tri-diagonal $$ 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 $$ | - Tri-diagonal $$ 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_3 - 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 $$ |
| - Anderson $$ 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 $$ | - Anderson $$ 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 $$ |
| - Natural Impurity. We define $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)$). The full response function is defined as $$ G(\omega,\Gamma) = A_0 + B_0^* \left( G_{val}(\omega,\Gamma) + G_{con}(\omega,\Gamma) \right) B_0^T$$ | - Natural Impurity. We define $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)$). The full response function is defined as $$ G(\omega,\Gamma) = A_0 + B_0^* \left( G_{val}(\omega,\Gamma) + G_{con}(\omega,\Gamma) \right) B_0^T$$ |
| Below you find several functions, methods, properties and operations related to response functions. | Below you find several functions, methods, properties and operations related to response functions. |
| |
| Response functions can be stored internally as Lua tables with the a meta table set, or as a user data. Both objects behave similarly. One should be careful as a comparison between a response function stored as a table to a response function stored as a user data is always falls. That said, comparing functions of doubles will always be problematic due to numerical inaccuracies. | Response functions can be stored internally as Lua tables with a metatable set to ResponseFunctionMeta, or as a user data. Both objects behave similarly. One should be careful as a comparison between a response function stored as a table to a response function stored as a user data is always falls. That said, comparing functions of doubles will always be problematic due to numerical inaccuracies. |
| |
| ### | ### |