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 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”.

There are different ways to represent the same spectrum objects. The spectrum can also be obtained using the Green's function form $ G(\omega) = \frac{1}{\omega - H + E_0 + i \gamma/2} \Big|_{(0,0)} $, where $ H $ is a matrix. In this case, the response functions are 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 $H$ can have different forms whereby only a few blocks are non-zero. Any unitary transformation of the matrix $H$ which leaves the $(0,0)$ element unchanged results in the same spectrum. In Quanty, there are 4 different representations for the response function:

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

The 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