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).
Definition at line 75 of file dlr_imtime.hpp.
|
|
| dlr_imtime ()=default |
| | Default constructor constructs an empty mesh.
|
| | dlr_imtime (double beta, statistic_enum statistic, double w_max, double eps, bool symmetrize=true) |
| | Construct an imaginary time DLR mesh with a given energy cutoff \( \omega_{\text{max}} \) and error tolerance \( \epsilon \).
|
| template<nda::AnyOf< dlr_imfreq, dlr > M> |
| | dlr_imtime (M const &m) |
| | Construct an imaginary time DLR mesh from another DLR type mesh.
|
|
auto | begin () const |
| | Get an iterator to the beginning of the mesh.
|
|
double | beta () const noexcept |
| | Get the inverse temperature \( \beta \).
|
|
auto | cbegin () const |
| | Get a const iterator to the beginning of the mesh.
|
|
auto | cend () const |
| | Get a const iterator to the end of the mesh.
|
| void | deserialize (auto &ar) |
| | Deserialize the mesh from a generic archive.
|
|
auto const & | dlr_freq () const |
| | Get the array of DLR frequencies \( \omega_l \).
|
|
auto const & | dlr_if () const |
| | Get the Matsubara frequency DLR operations object (see also cppdlr::imfreq_ops).
|
|
auto const & | dlr_it () const |
| | Get the imaginary time DLR operations object (see also cppdlr::imtime_ops).
|
|
auto | end () const |
| | Get an iterator to the end of the mesh.
|
|
double | eps () const noexcept |
| | Get the DLR error tolerance \( \epsilon \).
|
| bool | is_index_valid (long l) const noexcept |
| | Check if an index \( l \) is valid.
|
|
uint64_t | mesh_hash () const noexcept |
| | Get the hash value of the mesh.
|
| mesh_point_t | operator() (long l) const |
| | Function call operator to access a mesh point by its index \( l \in \{0, 1, \ldots, N-1\} \).
|
|
bool | operator== (dlr_imtime const &m) const |
| | Equal-to comparison operator compares the hash values.
|
| mesh_point_t | operator[] (long d) const |
| | Subscript operator to access a mesh point by its data index \( d \in \{0, 1, \ldots, N-1\} \).
|
| void | serialize (auto &ar) const |
| | Serialize the mesh to a generic archive.
|
|
long | size () const noexcept |
| | Get the size \( N \) of the mesh, i.e. the DLR rank \( r \).
|
|
statistic_enum | statistic () const noexcept |
| | Get the particle statistics.
|
|
bool | symmetrize () const noexcept |
| | Is the mesh symmetric around \( \tau = \beta / 2 \)?
|
|
long | to_data_index (closest_mesh_point_t< double > const &cmp) const =delete |
| | Mapping of a value \( \tau \in [0, \beta] \) to the data index of the closest mesh point is deleted.
|
| long | to_data_index (long l) const noexcept |
| | Map an index \( l \in \{0, 1, \ldots, N-1\} \) to its corresponding data index \( d(l) \).
|
| long | to_index (long d) const noexcept |
| | Map a data index \( d \in \{0, 1, \ldots, N-1\} \) to the corresponding index \( l(d) \).
|
| double | to_value (long l) const noexcept |
| | Map an index \( l \in \{0, 1, \ldots, N-1\} \) to its corresponding value \( \tau_l \).
|
|
double | w_max () const noexcept |
| | Get the DLR energy cutoff \( \omega_{\text{max}} = \Lambda / \beta \).
|