This is an old revision of the document!


Response function

One simple way to represent a spectrum, for example one that is calculated using the function CreateSpectra(), is a sum over the poles multiplied by the residues: \begin{equation} I(\omega) = \sum_{k} \frac{R_k}{\omega - \omega_k + i \gamma/2} \qquad \qquad \qquad (1) \end{equation} A more compact way to store this spectrum, as a function of $\omega$ (and $\gamma$), is by just using two arrays for the values of $ \{R_k\} $ (residues) and $ \{\omega_k\} $ (poles). This is precicely the purpose of the object Response Function. In other words, response functions in Quanty are functions that, given a complex number as input ($\omega + i \gamma/2$) return a complex number (single valued functions). Additionally, the output could be a matrix (matrix functions) when the response function is defined using array of matrices, instead of array of numbers. Response functions fullfil the Kramers Kronig relations and “causality”.

The response functions can also be defined by matrices such that the function is given by $ A_0 + B_0^* \frac{ 1 }{\omega - H + i \gamma / 2} B_0^{T} $, where $A_0$, $B_0$ and $H$ are matrices. $H$ can have different forms whereby only a few elements/blocks are non-zero. In Quanty, there are 4 different forms (types) for the matrix $H$:

  • list of poles (ListOfPoles)
  • tri-diagonal (Tri)
  • Anderson (And)
  • natural impurity orbital (NaturalImpurityOrbital)

These types are related to each other by unitary transformations and the Quanty function ChangeType() can be used to transform between these types. List of poles is exactly the representation in Eq. (1).

In order to define a response function,

Table of contents

Result

text produced as output

Table of contents

Print/export