triqs.mesh.meshes.MeshDLRImFreq

class triqs.mesh.meshes.MeshDLRImFreq

Bases: object

Imaginary frequency discrete Lehmann representation (DLR) mesh type.

An imaginary frequency 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 \(i\omega_n = 0\) (a symmetric mesh enforces the DLR rank to be even for Fermions and odd for Bosons).

An imaginary frequency 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(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 \(i\omega_{n_l}\), where \(i\omega_{n_l}\) is the l-th DLR interpolation node in imaginary frequency space.

Note

The index \(l\), which is used to access a certain mesh point, is different from the Matsubara index \(n_l\) that is stored in the mesh point object. That means, if m is an instance of imaginary-frequency DLR mesh, then m(l).index() != l in general.

Green’s function containers that are based on an imaginary frequency DLR mesh store the function values at the discrete frequency points \(i\omega_{n_l}\), i.e. \(f_l = f(i\omega_{n_l})\). In contrast to DLR and imaginary-frequency meshes, the GF container cannot evaluate the function at an arbitrary Matsubara frequency \(i\omega_n\) (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: MeshDLRImTime)

[4] (m: MeshDLR)

[1] Default constructor constructs an empty mesh.


[2] Construct an imaginary frequency 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 frequency 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 Matsubara frequencies symmetrically around \(i\omega_n = 0\).

mMeshDLRImTime, 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.

min_max_frequencies

Get a pair containing the smallest and largest Matsubara frequency in the mesh.

statistic

Get the particle statistics.

symmetrize

Is the mesh symmetric around \(i\omega_n = 0\)?

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 Matsubara frequency

values

Get the values of all mesh points in a mesh.