triqs.mesh.meshes.MeshDLR
- class triqs.mesh.meshes.MeshDLR
Bases:
objectDiscrete Lehmann representation (DLR) mesh type.
A DLR mesh is defined by the inverse temperature \(\beta > 0\), the particle statistics, a DLR energy cutoff \(\omega_{\text{max}}\), an error tolerance \(\epsilon\) and a boolean flag specifying if the mesh should be symmetric around \(\omega = 0\).
A DLR mesh has the following properties:
Each mesh point is identified by a unique index \(l \in \{0, 1, \ldots, N-1\}\).
The size of the mesh \(N\) depends on \(\beta\) and the choice of \(\omega_{\text{max}}\) and \(\epsilon\). It is equal to the DLR rank \(r\) and the number of DLR basis functions \(K(\tau, \omega_l)\) or \(K(i\omega_n, \omega_l)\).
An index \(l\) is mapped to the corresponding data index \(d\) by the identity function \(d(l) = l\) and vice versa.
An index \(l\) is mapped to the corresponding value \(\omega_l\), where \(\omega_l\) is the l-th DLR frequency.
Green’s function containers that are based on a DLR mesh store the coefficients \(f_l\) of the discrete Lehmann representation of a function \(f(\tau)\) or \(f(i\omega_n)\). To evaluate the function at an arbitrary imaginary time \(\tau \in [0, \beta]\) or at a specific Matsubara frequency \(i\omega_n\), the GF container calculates the DLR approximation of the function via
\[f(\tau) \approx \sum_{l=0}^{N-1} \frac{e^{-\omega_l \tau}}{1 + e^{-\omega_l \beta}} f_l \; ,\]or
\[f(i\omega_n) \approx \sum_{l=0}^{N-1} \frac{1}{i\omega_n + \omega_l} f_l \; .\]
Dispatched C++ constructor(s).
[1] () [2] (beta: float, statistic: Statistic ("Fermion" | "Boson"), w_max: float, eps: float, symmetrize: bool = True) [3] (m: MeshDLRImTime) [4] (m: MeshDLRImFreq)
[1] Default constructor constructs an empty mesh.
[2] Construct a DLR mesh with a given energy cutoff \(\omega_{\text{max}}\) and error tolerance \(\epsilon\) .
It builds the DLR frequencies \(\omega_l\) from \(\Lambda = \omega_{\text{max}} \beta\) and the error tolerance \(\epsilon\), then constructs the imaginary-time and imaginary-frequency DLR operator tables from them.
[3, 4] Construct a DLR mesh from another DLR type mesh.
- Parameters:
- betafloat
Inverse temperature \(\beta > 0\).
- statisticStatistic (“Fermion” | “Boson”)
Particle statistics.
- w_maxfloat
DLR energy cutoff \(\omega_{\text{max}} = \Lambda / \beta\).
- epsfloat
Error tolerance \(\epsilon\).
- symmetrizebool
Whether to choose the DLR frequencies symmetrically around \(\omega = 0\).
- mMeshDLRImTime, MeshDLRImFreq
Other mesh.
Attributes
Get the inverse temperature \(\beta\).
Get the array of DLR frequencies \(\omega_l\).
Get the DLR error tolerance \(\epsilon\).
Get the hash value of the mesh.
Get the particle statistics.
Is the mesh symmetric around \(\omega = 0\)?
Get the DLR energy cutoff \(\omega_{\text{max}} = \Lambda / \beta\).
Methods
__call__(*args, **kwargs)Call self as a function.
Get a copy of a mesh (for Python bindings).
Copy one mesh into another (for Python bindings).
Check if an index \(l\) is valid.
Map an index \(l \in \{0, 1, \ldots, N-1\}\) to its corresponding data index \(d(l)\).
Map a data index \(d \in \{0, 1, \ldots, N-1\}\) to the corresponding index \(l(d)\).
Map an index \(l \in \{0, 1, \ldots, N-1\}\) to its corresponding value \(\omega_l\).
Get the values of all mesh points in a mesh.