triqs.mesh.meshes.MeshChebyshev
- class triqs.mesh.meshes.MeshChebyshev
Bases:
objectChebyshev imaginary time mesh type.
A Chebyshev imaginary time mesh is defined by its size \(N \geq 0\), an inverse temperature \(\beta > 0\) and its particle statistics. It stores function values at Chebyshev collocation points and uses barycentric interpolation for evaluation at arbitrary imaginary times, providing exponential convergence for smooth functions.
A Chebyshev imaginary time mesh has the following properties:
Each mesh point is identified by a unique index \(n \in \{0, 1, \ldots, N-1\}\).
An index \(n\) is mapped to the corresponding data index \(d\) by the identity function \(d(n) = n\) and vice versa.
An index \(n\) is mapped to the corresponding value \(\tau\) by the function \(\tau(n) = \frac{\beta}{2} (x_n + 1)\) where \(x_n = \cos\left(\frac{(2n + 1) \pi}{2N}\right)\) is the Chebyshev point of the first kind.
Green’s function containers that are based on a Chebyshev imaginary time mesh store the function values at the discrete time points \(\tau(n)\), i.e. \(f_n = f(\tau(n))\), and use barycentric interpolation to evaluate the function at an arbitrary imaginary time \(\tau \in [0, \beta]\):
\[f(\tau) \approx \frac{\sum_{n=0}^{N-1} \frac{w_n}{x - x_n} f_n}{\sum_{n=0}^{N-1} \frac{w_n}{x - x_n}}\]where \(x = 2\tau/\beta - 1\) is the scaled coordinate and \(w_n\) are the barycentric weights.
Dispatched C++ constructor(s).
[1] () [2] (beta: float, stat: Statistic ("Fermion" | "Boson"), N: int)
[1] Default constructor constructs an empty mesh.
[2] Construct a Chebyshev mesh on \([0, \beta]\) with \(N\) collocation points.
- Parameters:
- betafloat
Inverse temperature \(\beta > 0\).
- statStatistic (“Fermion” | “Boson”)
Particle statistics.
- Nint
Number of Chebyshev points \(N > 0\).
Attributes
Get the inverse temperature \(\beta\).
Get the precomputed \(2 / \beta\) for fast tau -> [-1, 1] mapping.
Get the hash value of the mesh.
Access to Chebyshev points scaled to [0, beta].
Access to Chebyshev points on [-1, 1].
Get the particle statistics.
Access to barycentric weights.
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 \(n\) is valid.
Map an index \(n \in \{0, 1, \ldots, N-1\}\) to its corresponding data index \(d(n)\).
Map a data index \(d \in \{0, 1, \ldots, N-1\}\) to the corresponding index \(n(d)\).
Map an index \(n\) to its corresponding value \(\tau_n\).
Get the values of all mesh points in a mesh.