|
TRIQS/TRIQS 4.0.0
Researching Interacting Quantum Systems
|
Fourier transform between time and frequency representations.
The Fourier transform between imaginary time and Matsubara frequency and between real time and real frequency, as well as the lattice Fourier transform.
Functions | |
| template<int N = 0, typename G, typename... Args> | |
| _fourier_lazy< N, typename G::const_view_type, Args... > | triqs::gfs::fourier (G const &g, Args &&...1) |
| Build a lazy Fourier transform expression for use in g_out = fourier(g_in, ...) assignments. | |
| template<int N = 0, typename M1, typename M2, typename T, typename... OptArgs> | |
| auto | triqs::gfs::make_gf_from_fourier (gf_const_view< M1, T > gin, M2 const &mesh, OptArgs const &...opt_args) |
| Build a new Green's function on the conjugate mesh by Fourier transforming an input Green's function. | |
| template<int... Ns, typename V, typename T> | |
| auto | triqs::gfs::make_gf_from_multi_fourier (gf_const_view< V, T > gin) |
| Fourier transform several components of a product-mesh Green's function at once. | |
| template<int N = 0, typename... M, typename Target> | |
| auto | triqs::gfs::partial_transform (gf_const_view< mesh::prod< M... >, Target > gin, auto lambda) |
| Apply a transform to a single mesh component of a product-mesh Green's function. | |
| _fourier_lazy< N, typename G::const_view_type, Args... > triqs::gfs::fourier | ( | G const & | g, |
| Args &&... | args ) |
#include <triqs/gfs/transform/fourier.hpp>
Build a lazy Fourier transform expression for use in g_out = fourier(g_in, ...) assignments.
The returned object holds a const view on g and the optional arguments; the actual transform is performed when it is assigned into a target Green's function, whose mesh selects the conjugate variable.
| N | Index of the mesh component to transform (default \( 0 \)). |
| G | The type of the input Green's function. |
| Args | Types of the optional arguments (e.g. known high-frequency moments). |
| g | The input Green's function. |
| args | Optional arguments forwarded to the transform. |
Definition at line 331 of file fourier.hpp.
| auto triqs::gfs::make_gf_from_fourier | ( | gf_const_view< M1, T > | gin, |
| M2 const & | mesh, | ||
| OptArgs const &... | opt_args ) |
#include <triqs/gfs/transform/fourier.hpp>
Build a new Green's function on the conjugate mesh by Fourier transforming an input Green's function.
Supports the standard pairs of conjugate meshes:
The output mesh may be supplied explicitly; if omitted, the conjugate mesh of the input is used. For Matsubara/real-frequency pairs an optional integer ( \( n_{\tau} \) or \( n_{i\omega} \)) controls the size of the generated mesh. Known high-frequency moments may be passed to improve accuracy near the tail.
For block Green's functions, the transform is applied block by block.
| N | Index of the mesh component to transform (default \( 0 \)). |
| M1 | Mesh type of the input Green's function. |
| M2 | Mesh type of the output Green's function. |
| T | Target type of the input Green's function. |
| gin | The input Green's function. |
| mesh | The output mesh on the conjugate variable. |
| opt_args | Optional arguments (e.g. known high-frequency moments). |
Definition at line 141 of file fourier.hpp.
| auto triqs::gfs::make_gf_from_multi_fourier | ( | gf_const_view< V, T > | gin | ) |
#include <triqs/gfs/transform/fourier.hpp>
Fourier transform several components of a product-mesh Green's function at once.
Each axis listed in the template pack Ns is transformed to its conjugate mesh, in turn.
| Ns | Indices of the mesh components to transform. |
| V | Product mesh type of the input Green's function. |
| T | Target type of the input Green's function. |
| gin | The input Green's function on a product mesh. |
Definition at line 225 of file fourier.hpp.
| auto triqs::gfs::partial_transform | ( | gf_const_view< mesh::prod< M... >, Target > | gin, |
| auto | lambda ) |
#include <triqs/gfs/transform/partial_transform.hpp>
Apply a transform to a single mesh component of a product-mesh Green's function.
The input Green's function is flattened along the component N (collapsing all other mesh axes and target indices into a single dimension), the user-supplied lambda is applied to the resulting flattened Green's function, and the result is unflattened back onto a product mesh whose N-th component is replaced by the mesh produced by lambda. This is the common scaffold used by per-axis transforms on product meshes.
| N | Index of the mesh component to transform (default \( 0 \)). |
| M | Mesh types of the product-mesh components. |
| Target | Target type of the input Green's function. |
| gin | The input Green's function on a product mesh. |
| lambda | The transform applied to the flattened Green's function of the selected component. |
Definition at line 50 of file partial_transform.hpp.