TRIQS/TRIQS 4.0.0
Researching Interacting Quantum Systems
Loading...
Searching...
No Matches
gf.hpp
#include "./defs.hpp"
#include "./targets.hpp"
#include "../../utility/concept_tools.hpp"
#include "../../utility/exceptions.hpp"
#include "../../utility/macros.hpp"
#include <itertools/itertools.hpp>
#include <mpi/mpi.hpp>
#include <nda/nda.hpp>
#include <array>
#include <concepts>
#include <numeric>
#include <ostream>
#include <string>
#include <tuple>
#include <type_traits>
#include <utility>
#include "./_gf_view_common.hpp"

Detailed Description

Provides the Green's function class.

Definition in file gf.hpp.

Go to the source code of this file.

Classes

class  triqs::gfs::gf< M, Target, Layout >
 The owning Green's function container. More...
struct  triqs::gfs::gf< M, Target, Layout >::target_and_shape_t
 Lightweight handle bundling the target type and its shape. More...
struct  triqs::gfs::is_instantiation_of< TMPLT, T >
 Trait to detect whether a type is an instantiation of a given class template. More...

Concepts

concept  triqs::gfs::MemoryGf
 Concept checking that a type behaves like an in-memory Green's function.

Typedefs

template<MemoryGf G>
using triqs::gfs::target_value_t = decltype(std::declval<G>()[std::declval<typename G::mesh_point_t>()])
 The type of value obtained when accessing a Green's function of type G with a mesh point.

Functions

template<int N = 0, MemoryGf G>
auto const & triqs::gfs::get_mesh (G const &g)
 Get the mesh of a Green's function, or its N-th component for a product mesh.
template<typename Tag, typename L, typename R>
 triqs::gfs::gf (gf_expr< Tag, L, R > &&) -> gf< typename gf_expr< Tag, L, R >::mesh_t, typename gf_expr< Tag, L, R >::target_t >
 Deduce a triqs::gfs::gf type from an rvalue Green's function expression.
template<typename Tag, typename L, typename R>
 triqs::gfs::gf (gf_expr< Tag, L, R > const &) -> gf< typename gf_expr< Tag, L, R >::mesh_t, typename gf_expr< Tag, L, R >::target_t >
 Deduce a triqs::gfs::gf type from a const Green's function expression.
template<Mesh M>
 triqs::gfs::gf (M) -> gf< M, scalar_valued >
 Deduce a (scalar-valued) triqs::gfs::gf type from a mesh alone.
template<Mesh M, nda::MemoryArray DataArray>
 triqs::gfs::gf (M, DataArray) -> gf< M, target_from_array< DataArray, n_variables< M > > >
 Deduce a triqs::gfs::gf type from a mesh and a data array.
template<Mesh M, std::integral I, size_t R>
 triqs::gfs::gf (M, std::array< I, R >) -> gf< M, typename _target_from_type_rank< dcomplex, R >::type >
 Deduce a triqs::gfs::gf type from a mesh and a target shape (complex valued, target rank R).
template<MemoryGf G>
void triqs::gfs::mpi_broadcast (G &&g, mpi::communicator c, int root)
 Implementation of an MPI broadcast for triqs::gfs::gf, triqs::gfs::gf_view or triqs::gfs::gf_const_view types.
template<MemoryGf G1, MemoryGf G2>
void triqs::gfs::mpi_reduce_into (G1 const &g_in, G2 &&g_out, mpi::communicator c, int root, bool all, MPI_Op op)
 Implementation of an MPI reduce for triqs::gfs::gf, triqs::gfs::gf_view or triqs::gfs::gf_const_view types that reduces directly into an existing GF object.

Variables

template<typename G, typename M = void>
constexpr bool triqs::gfs::is_gf_v = false
 Trait to check whether a type models the Green's function concept.
template<template< typename... > class gf, typename T>
constexpr bool triqs::gfs::is_instantiation_of_v = is_instantiation_of<gf, std::decay_t<T>>::value
 Variable template for triqs::gfs::is_instantiation_of, decaying the tested type first.