[gf<refreq>] Real frequencies

This is a specialisation of gf for real frequencies.

Synopsis

gf<refreq, Target, Opt>

The Target template parameter can take the following values:

Target

Meaning

scalar_valued

The function is scalar valued (double, complex…).

matrix_valued [default]

The function is matrix valued.

Domain & mesh

Evaluation method

  • Linear interpolation on the mesh.

  • Return type:

    • If Target==scalar_valued: a complex

    • If Target==matrix_valued: an object modeling ImmutableMatrix concept.

  • When the point is outside of the mesh, the evaluation of the gf returns:

    • the evaluation of the high frequency tail

Data storage

  • If Target==scalar_valued :

    • data_t: 1d array of complex<double>.

    • g.data()(i) is the value of g for the i-th point of the mesh.

  • If Target==matrix_valued :

    • data_t: 3d array (C ordered) of complex<double>.

    • g.data()(i, range(), range()) is the value of g for the i-th point of the mesh.

HDF5 storage convention

h5 tag: ReFreq

Examples

#include <triqs/gfs.hpp>
#include <triqs/mesh.hpp>
using namespace triqs::gfs;
using namespace triqs::mesh;

int main() {
  double wmin = 0, wmax = 10; // Frequencies interval
  auto n_freq = 100;          // Number of points

  // We want a 2x2 matrix valued function on this mesh...
  auto g = gf<refreq>{{wmin, wmax, n_freq}, {2, 2}};
};