TRIQS/TRIQS 4.0.0
Researching Interacting Quantum Systems
Loading...
Searching...
No Matches
imfreq.hpp
#include "./functions2.hpp"
#include "../gf/gf.hpp"
#include "../gf/gf_view.hpp"
#include "../block/block_gf.hpp"
#include "../../utility/exceptions.hpp"
#include "../../utility/view_tools.hpp"
#include "../../mesh/dlr_imfreq.hpp"
#include "../../mesh/dlr_imtime.hpp"
#include "../../mesh/imfreq.hpp"
#include "../../mesh/imtime.hpp"
#include <algorithm>
#include <cmath>
#include <type_traits>
#include <utility>

Detailed Description

Provides Matsubara-frequency-specific functions and reality / hermiticity helpers for Green's functions.

Definition in file imfreq.hpp.

Go to the source code of this file.

Functions

template<template< typename, typename... > typename G, typename T>
auto triqs::gfs::fit_hermitian_tail_on_window (G< mesh::imfreq, T > const &g, int n_min, int n_max, array_const_view< dcomplex, 3 > known_moments, int n_tail_max, int expansion_order)
 Fit the high-frequency tail on a restricted window, imposing hermitian moment matrices.
template<template< typename, typename, typename... > typename G, typename T>
auto triqs::gfs::fit_tail_on_window (G< mesh::imfreq, T > const &g, int n_min, int n_max, array_const_view< dcomplex, 3 > known_moments, int n_tail_max, int expansion_order)
 Fit the high-frequency tail of a Matsubara Green's function on a restricted frequency window.
template<typename G>
requires (is_gf_v<G> or is_block_gf_v<G>)
bool triqs::gfs::is_gf_hermitian (G const &g, double tolerance=1.e-12)
 Test whether a Green's function satisfies the hermitian symmetry up to a tolerance \( \epsilon \).
template<typename G>
bool triqs::gfs::is_gf_real_in_tau (G const &g, double tolerance=1.e-12)
 Test whether a Matsubara Green's function corresponds to a real imaginary-time Green's function.
template<typename T, typename Layout>
gf< mesh::imfreq, T > triqs::gfs::make_gf_from_real_gf (gf_const_view< mesh::imfreq, T, Layout > g)
 Build a full-mesh Matsubara Green's function from one defined on positive frequencies only.
template<typename G>
requires (is_gf_v<G> or is_block_gf_v<G>)
G::regular_type triqs::gfs::make_hermitian (G const &g)
 Symmetrize a Green's function so that it satisfies the hermitian symmetry.
template<typename G>
requires (is_gf_v<G> or is_block_gf_v<G>)
G::regular_type triqs::gfs::make_real_in_tau (G const &g)
 Symmetrize a Matsubara Green's function so that its imaginary-time partner is real-valued.
template<typename G>
requires (is_gf_v<G>)
view_or_type_t< std::decay_t< G > > triqs::gfs::positive_freq_view (G &&g)
 Make a view of the positive-frequency part of a Matsubara Green's function.
template<typename T>
void triqs::gfs::replace_by_tail (gf_view< mesh::imfreq, T > g, array_const_view< dcomplex, 1+T::rank > tail, int n_min)
 Overwrite the high-frequency tail of a Matsubara Green's function.
template<typename T>
void triqs::gfs::replace_by_tail_in_fit_window (gf_view< mesh::imfreq, T > g, array_const_view< dcomplex, 1+T::rank > tail)
 Overwrite the high-frequency portion of a Matsubara Green's function with the tail expansion.
template<template< typename, typename, typename... > typename G, typename T>
auto triqs::gfs::restricted_view (G< mesh::imfreq, T > const &g, int n_max)
 Make a const view of a Matsubara Green's function restricted to the first n_max frequency indices.