triqs.mesh.meshes.MeshChebyshev

class triqs.mesh.meshes.MeshChebyshev

Bases: object

Chebyshev 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

beta

Get the inverse temperature \(\beta\).

inv_beta_x2

Get the precomputed \(2 / \beta\) for fast tau -> [-1, 1] mapping.

mesh_hash

Get the hash value of the mesh.

points

Access to Chebyshev points scaled to [0, beta].

points_standard

Access to Chebyshev points on [-1, 1].

statistic

Get the particle statistics.

weights

Access to barycentric weights.

Methods

__call__(*args, **kwargs)

Call self as a function.

copy

Get a copy of a mesh (for Python bindings).

copy_from

Copy one mesh into another (for Python bindings).

is_index_valid

Check if an index \(n\) is valid.

to_data_index

Map an index \(n \in \{0, 1, \ldots, N-1\}\) to its corresponding data index \(d(n)\).

to_index

Map a data index \(d \in \{0, 1, \ldots, N-1\}\) to the corresponding index \(n(d)\).

to_value

Map an index \(n\) to its corresponding value \(\tau_n\).

values

Get the values of all mesh points in a mesh.