triqs.mesh.meshes.MeshDLRImTime

class triqs.mesh.meshes.MeshDLRImTime

Bases: object

Imaginary time discrete Lehmann representation (DLR) mesh type.

An imaginary time 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 \(\tau = \beta / 2\) (a symmetric mesh enforces the DLR rank to be even for Fermions and odd for Bosons).

An imaginary time 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)\).

  • 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 \(\tau_l\), where \(\tau_l\) is the l-th DLR interpolation node in imaginary time space.

Green’s function containers that are based on an imaginary time DLR mesh store the function values at the discrete time points \(\tau_l\), i.e. \(f_l = f(\tau_l)\). In contrast to DLR and imaginary-time meshes, the GF container cannot evaluate the function at an arbitrary imaginary time \(\tau \in [0, \beta]\) (evaluation at arbitrary points is intentionally unsupported).


Dispatched C++ constructor(s).

[1] ()

[2] (beta: float,
     statistic: Statistic ("Fermion" | "Boson"),
     w_max: float,
     eps: float,
     symmetrize: bool = True)

[3] (m: MeshDLRImFreq)

[4] (m: MeshDLR)

[1] Default constructor constructs an empty mesh.


[2] Construct an imaginary time 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 an imaginary time 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 imaginary time points symmetrically around \(\tau = \beta / 2\).

mMeshDLRImFreq, MeshDLR

Other mesh.

Attributes

beta

Get the inverse temperature \(\beta\).

dlr_freq

Get the array of DLR frequencies \(\omega_l\).

eps

Get the DLR error tolerance \(\epsilon\).

mesh_hash

Get the hash value of the mesh.

statistic

Get the particle statistics.

symmetrize

Is the mesh symmetric around \(\tau = \beta / 2\)?

w_max

Get the DLR energy cutoff \(\omega_{\text{max}} = \Lambda / \beta\).

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 \(l\) is valid.

to_data_index

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

to_index

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

to_value

Map an index \(l \in \{0, 1, \ldots, N-1\}\) to its corresponding value \(\tau_l\).

values

Get the values of all mesh points in a mesh.