TRIQS/TRIQS 4.0.0
Researching Interacting Quantum Systems
Loading...
Searching...
No Matches
GF block mapping

Detailed Description

Apply a function block-by-block on block Green's functions.

Helpers that lift a function acting on a single Green's function to a function acting on each block of a block Green's function (triqs::gfs::map_block_gf).

Functions

template<typename V, typename T, typename L, int A>
auto triqs::gfs::fourier (block_gf< V, T, L, A > &g)
 Lvalue overload of the block-wise lazy Fourier transform (see the const overload).
template<typename V, typename T, typename L, int A>
auto triqs::gfs::fourier (block_gf< V, T, L, A > const &g)
 Lazily apply the Fourier transform block by block to a block Green's function.
template<typename V, typename T, typename L, int A, bool C>
auto triqs::gfs::fourier (block_gf_view< V, T, L, A, C > g)
 View overload of the block-wise lazy Fourier transform (see the const overload).
template<typename M, typename T, typename L, int A>
auto triqs::gfs::inverse (block_gf< M, T, L, A > &g)
 Apply inverse block-wise to each block of the block Green's function.
template<typename M, typename T, typename L, int A>
auto triqs::gfs::inverse (block_gf< M, T, L, A > const &g)
 Apply inverse block-wise to each block of the block Green's function.
template<typename M, typename T, typename L, int A, bool C>
auto triqs::gfs::inverse (block_gf_view< M, T, L, A, C > g)
 Apply inverse block-wise to each block of the block Green's function.
template<typename M, typename T, typename L, int A>
auto triqs::gfs::make_gf_from_fourier (block_gf< M, T, L, A > &g)
 Apply make_gf_from_fourier block-wise to each block of the block Green's function.
template<typename M, typename T, typename L, int A>
auto triqs::gfs::make_gf_from_fourier (block_gf< M, T, L, A > const &g)
 Apply make_gf_from_fourier block-wise to each block of the block Green's function.
template<typename M, typename T, typename L, int A, bool C>
auto triqs::gfs::make_gf_from_fourier (block_gf_view< M, T, L, A, C > g)
 Apply make_gf_from_fourier block-wise to each block of the block Green's function.
template<typename M, typename T, typename L, int A>
auto triqs::gfs::make_gf_from_inverse_fourier (block_gf< M, T, L, A > &g)
 Apply make_gf_from_inverse_fourier block-wise to each block of the block Green's function.
template<typename M, typename T, typename L, int A>
auto triqs::gfs::make_gf_from_inverse_fourier (block_gf< M, T, L, A > const &g)
 Apply make_gf_from_inverse_fourier block-wise to each block of the block Green's function.
template<typename M, typename T, typename L, int A, bool C>
auto triqs::gfs::make_gf_from_inverse_fourier (block_gf_view< M, T, L, A, C > g)
 Apply make_gf_from_inverse_fourier block-wise to each block of the block Green's function.
template<typename F, typename G>
requires (is_block_gf_v<G>)
auto triqs::gfs::map (F &&f, G &&g)
 Apply a callable to each block of a block Green's function (alias of triqs::gfs::map_block_gf).
template<typename F, typename G>
auto triqs::gfs::map_block_gf (F &&f, G &&g)
 Apply a callable to each block of a block Green's function.
template<typename M, typename T, typename L, int A>
auto triqs::gfs::reinterpret_scalar_valued_gf_as_matrix_valued (block_gf< M, T, L, A > &g)
 Apply reinterpret_scalar_valued_gf_as_matrix_valued block-wise to each block of the block Green's function.
template<typename M, typename T, typename L, int A>
auto triqs::gfs::reinterpret_scalar_valued_gf_as_matrix_valued (block_gf< M, T, L, A > const &g)
 Apply reinterpret_scalar_valued_gf_as_matrix_valued block-wise to each block of the block Green's function.
template<typename M, typename T, typename L, int A, bool C>
auto triqs::gfs::reinterpret_scalar_valued_gf_as_matrix_valued (block_gf_view< M, T, L, A, C > g)
 Apply reinterpret_scalar_valued_gf_as_matrix_valued block-wise to each block of the block Green's function.

Function Documentation

◆ fourier()

template<typename V, typename T, typename L, int A>
auto triqs::gfs::fourier ( block_gf< V, T, L, A > const & g)

#include <triqs/gfs/block/functions.hpp>

Lazily apply the Fourier transform block by block to a block Green's function.

Returns a lazy transform object that applies fourier to each block when assigned into a block Green's function.

Template Parameters
VMesh type.
TTarget type.
LLayout type.
ABlock arity.
Parameters
gBlock Green's function.
Returns
A lazy transform applying fourier block by block.

Definition at line 44 of file functions.hpp.

◆ map()

template<typename F, typename G>
requires (is_block_gf_v<G>)
auto triqs::gfs::map ( F && f,
G && g )

#include <triqs/gfs/block/map.hpp>

Apply a callable to each block of a block Green's function (alias of triqs::gfs::map_block_gf).

Template Parameters
FType of the callable.
GType of the block Green's function.
Parameters
fCallable applied to each block.
gBlock Green's function (or view).
Returns
The block-wise result (see triqs::gfs::map_block_gf).

Definition at line 147 of file map.hpp.

◆ map_block_gf()

template<typename F, typename G>
auto triqs::gfs::map_block_gf ( F && f,
G && g )

#include <triqs/gfs/block/map.hpp>

Apply a callable to each block of a block Green's function.

Computes f(g[i]) for every block. The return type follows the result of f: a triqs::gfs::block_gf if f returns a triqs::gfs::gf, a triqs::gfs::block_gf_view / triqs::gfs::block_gf_const_view if it returns a view, and a std::vector otherwise.

Template Parameters
FType of the callable.
GType of the block Green's function.
Parameters
fCallable applied to each block.
gBlock Green's function (or view).
Returns
The block-wise result (see details).

Definition at line 131 of file map.hpp.