NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library
cntr Namespace Reference

Classes

class  bethedos
  Class bethe represent the semicircular density of states More...
 
class  distributed_array
  Auxiliary data structure for handling set of data blocks and includes usual MPI processes on them. More...
 
class  distributed_timestep_array
  Specialization of the distributed_array in which data-blocks are associated with the herm_matrix_timestep objects More...
 
struct  dos_wrapper
 
class  function
  Class function for objects \( f(t) \) with time on real axis. More...
 
class  herm_matrix
  Class herm_matrix for two-time contour objects \( C(t,t') \) with hermitian symmetry. More...
 
class  herm_matrix_timestep
  Class herm_matrix_timestep deals with contour objects \( C(t,t') \) at a particular timestep \(t'\). More...
 
class  herm_matrix_timestep_view
  Class herm_matrix_timestep_view serves for interfacing with class herm_matrix_timestep without copying the data. More...
 
class  smooth_box
  Class 'smooth_box` represent a smooth box-like density of states More...
 

Functions

template<typename T >
bose (T beta, T omega)
  Evaluates the Bose distribution function. More...
 
template<typename T >
dvector bose (T beta, dvector &omega)
  Evaluates the Bose distribution function. More...
 
template<class GGC , class GGA , class GGB >
void Bubble1 (int tstp, GGC &C, int c1, int c2, GGA &A, GGA &Acc, int a1, int a2, GGB &B, GGB &Bcc, int b1, int b2)
  Evaluate a bubble diagram ( \(C\)) from two-time contour functions \(A,B\) at the time step; \( C_{c_1,c_2}(t_1,t_2) = i A_{a_1,a_2}(t_t,t_2) * B_{b_2,b_1}(t_2,t_1) \). More...
 
template<class GGC , class GGA , class GGB >
void Bubble1 (int tstp, GGC &C, int c1, int c2, GGA &A, int a1, int a2, GGB &B, int b1, int b2)
  Evaluate a bubble diagram ( \(C\)) from two-time contour functions \(A,B\) at the time step; \( C_{c_1,c_2}(t_1,t_2) = i A_{a_1,a_2}(t_t,t_2) * B_{b_2,b_1}(t_2,t_1) \). More...
 
template<class GGC , class GGA , class GGB >
void Bubble1 (int tstp, GGC &C, GGA &A, GGA &Acc, GGB &B, GGB &Bcc)
  Evaluate a bubble diagram ( \(C\)) from two-time contour functions \(A,B\) at the time step; \( C_{0,0}(t_1,t_2) = i A_{0,0}(t_t,t_2) * B_{0,0}(t_2,t_1) \). More...
 
template<class GGC , class GGA , class GGB >
void Bubble1 (int tstp, GGC &C, GGA &A, GGB &B)
  Evaluate a bubble diagram ( \(C\)) from two-time contour functions \(A,B\) at the time step; \( C_{0,0}(t_1,t_2) = i A_{0,0}(t_t,t_2) * B_{0,0}(t_2,t_1) \). More...
 
template<class GGC , class GGA , class GGB >
void Bubble2 (int tstp, GGC &C, int c1, int c2, GGA &A, GGA &Acc, int a1, int a2, GGB &B, GGB &Bcc, int b1, int b2)
  Evaluate a bubble diagram ( \(C\)) from two-time contour functions \(A,B\) at the time step; \( C_{c_1,c_2}(t_1,t_2) = i A_{a_1,a_2}(t_1,t_2) * B_{b_1,b_2}(t_1,t_2) \). More...
 
template<class GGC , class GGA , class GGB >
void Bubble2 (int tstp, GGC &C, int c1, int c2, GGA &A, int a1, int a2, GGB &B, int b1, int b2)
  Evaluate a bubble diagram ( \(C\)) from two-time contour functions \(A,B\) at the time step; \( C_{c_1,c_2}(t_1,t_2) = i A_{a_1,a_2}(t_1,t_2) * B_{b_1,b_2}(t_1,t_2) \). More...
 
template<class GGC , class GGA , class GGB >
void Bubble2 (int tstp, GGC &C, GGA &A, GGA &Acc, GGB &B, GGB &Bcc)
  Evaluate a bubble diagram ( \(C\)) from two-time contour functions \(A,B\) at the time step; \( C_{0,0}(t_1,t_2) = i A_{0,0}(t_1,t_2) * B_{0,0}(t_1,t_2) \). More...
 
template<class GGC , class GGA , class GGB >
void Bubble2 (int tstp, GGC &C, GGA &A, GGB &B)
  Evaluate a bubble diagram ( \(C\)) from two-time contour functions \(A,B\) at the time step; \( C_{0,0}(t_1,t_2) = i A_{0,0}(t_1,t_2) * B_{0,0}(t_1,t_2) \). More...
 
template<typename T >
void convolution (herm_matrix< T > &C, herm_matrix< T > &A, herm_matrix< T > &Acc, herm_matrix< T > &B, herm_matrix< T > &Bcc, T beta, T h, int SolveOrder)
  Returns the result of the contour convolution of two matrices and a function object More...
 
template<typename T >
void convolution (herm_matrix< T > &C, herm_matrix< T > &A, herm_matrix< T > &Acc, function< T > &ft, herm_matrix< T > &B, herm_matrix< T > &Bcc, T beta, T h, int SolveOrder)
  Returns the result of the contour convolution of two matrices and a function object More...
 
template<typename T , class GG >
void convolution_density_matrix (int n, cdmatrix &rho, GG &A, GG &Acc, function< T > &ft, GG &B, GG &Bcc, T beta, T h, int SolveOrder)
  Returns the result of the contour convolution and a contour function for a density matrix at a given time-step More...
 
template<typename T , class GG >
void convolution_density_matrix (int n, cdmatrix &rho, GG &A, function< T > &ft, GG &B, T beta, T h, int SolveOrder)
  Returns the result of the contour convolution and a contour function for a density matrix at a given time-step More...
 
template<typename T , class GG >
void convolution_density_matrix (int n, cdmatrix &rho, GG &A, GG &Acc, GG &B, GG &Bcc, T beta, T h, int SolveOrder)
  Returns the result of the contour convolution for a density matrix at a given time-step More...
 
template<typename T , class GG >
void convolution_density_matrix (int tstp, cdmatrix &rho, GG &A, GG &B, T beta, T h, int SolveOrder)
  Returns the result of the contour convolution for a density matrix More...
 
template<typename T >
void convolution_omp (int omp_num_threads, herm_matrix< T > &C, herm_matrix< T > &A, herm_matrix< T > &Acc, function< T > &ft, herm_matrix< T > &B, herm_matrix< T > &Bcc, T beta, T h, int SolveOrder)
  Returns convolution \(C = A\ast f \ast B\) for all timesteps. More...
 
template<typename T >
void convolution_omp (int omp_num_threads, herm_matrix< T > &C, herm_matrix< T > &A, herm_matrix< T > &Acc, herm_matrix< T > &B, herm_matrix< T > &Bcc, T beta, T h, int SolveOrder)
  Returns convolution \(C = A\ast B\) for all timesteps. More...
 
template<typename T >
void convolution_timestep (int n, herm_matrix< T > &C, herm_matrix< T > &A, herm_matrix< T > &Acc, herm_matrix< T > &B, herm_matrix< T > &Bcc, T beta, T h, int SolveOrder)
  Returns convolution of two matrices at a given time step More...
 
template<typename T >
void convolution_timestep (int n, herm_matrix< T > &C, herm_matrix< T > &A, herm_matrix< T > &B, T beta, T h, int SolveOrder)
  Returns convolution of two hermitian matrices at a given time step More...
 
template<typename T >
void convolution_timestep (int n, herm_matrix< T > &C, herm_matrix< T > &A, herm_matrix< T > &Acc, function< T > &ft, herm_matrix< T > &B, herm_matrix< T > &Bcc, T beta, T h, int SolveOrder)
  Returns convolution of two 'herm_matrix' objects and a contour function at a given time step More...
 
template<typename T >
void convolution_timestep (int n, herm_matrix< T > &C, herm_matrix< T > &A, function< T > &ft, herm_matrix< T > &B, T beta, T h, int SolveOrder)
  Returns convolution of two hermitian matrices and a contour function at a given time step More...
 
template<typename T >
void convolution_timestep_omp (int omp_num_threads, int tstp, herm_matrix< T > &C, herm_matrix< T > &A, herm_matrix< T > &Acc, function< T > &ft, herm_matrix< T > &B, herm_matrix< T > &Bcc, T beta, T h, int SolveOrder)
  Returns convolution \(C = A\ast f\ast B\) at a given time step More...
 
template<typename T >
void convolution_timestep_omp (int omp_num_threads, int tstp, herm_matrix< T > &C, herm_matrix< T > &A, function< T > &ft, herm_matrix< T > &B, T beta, T h, int SolveOrder)
  Returns convolution \(C = A\ast f\ast B\) at a given time step More...
 
template<typename T >
void convolution_timestep_omp (int omp_num_threads, int tstp, herm_matrix< T > &C, herm_matrix< T > &A, herm_matrix< T > &Acc, herm_matrix< T > &B, herm_matrix< T > &Bcc, T beta, T h, int SolveOrder)
  Returns convolution \(C = A\ast B\) at a given time step More...
 
template<typename T >
void convolution_timestep_omp (int omp_num_threads, int tstp, herm_matrix< T > &C, herm_matrix< T > &A, herm_matrix< T > &B, T beta, T h, int SolveOrder)
  Returns convolution \(C = A\ast f\ast B\) at a given time step. More...
 
template<typename T >
correlation_energy (int tstp, herm_matrix< T > &G, herm_matrix< T > &Sigma, T beta, T h, int SolveOrder)
  Returns the result of the correlation energy at a given time-step from the time-diagonal convolution More...
 
template<typename T >
correlation_energy (int tstp, herm_matrix< T > &G, herm_matrix< T > &Sigma, integration::Integrator< T > &I, T beta, T h)
  Returns the result of the correlation energy at a given time-step from the time-diagonal convolution More...
 
template<typename T >
void deriv1_element (int tstp1, int tstp2, herm_matrix< T > &dA, herm_matrix< T > &A, herm_matrix< T > &Acc, T h, int SolveOrder=MAX_SOLVE_ORDER)
 
template<typename T >
void deriv1_matsubara (herm_matrix< T > &dA, herm_matrix< T > &A, T beta, int SolveOrder=MAX_SOLVE_ORDER)
 
template<typename T >
void deriv1_timestep (int tstp, herm_matrix< T > &dA, herm_matrix< T > &A, herm_matrix< T > &Acc, T beta, T h, int SolveOrder=MAX_SOLVE_ORDER)
 
template<typename T >
void deriv1_tv (int tstp, herm_matrix< T > &dA, herm_matrix< T > &A, T h, int SolveOrder=MAX_SOLVE_ORDER)
 
template<typename T >
void deriv2_element (int tstp1, int tstp2, herm_matrix< T > &dA, herm_matrix< T > &A, herm_matrix< T > &Acc, T h, int SolveOrder=MAX_SOLVE_ORDER)
 
template<typename T >
void deriv2_timestep (int tstp, herm_matrix< T > &dA, herm_matrix< T > &A, herm_matrix< T > &Acc, T beta, T h, int SolveOrder=MAX_SOLVE_ORDER)
 
template<typename T >
void deriv2_tv (int tstp, herm_matrix< T > &dA, herm_matrix< T > &A, T beta, int SolveOrder=MAX_SOLVE_ORDER)
 
template<typename T >
distance_norm2 (int tstp, herm_matrix< T > &g1, herm_matrix< T > &g2)
  Evaluate the Euclidean norm between two herm_matrix at a given time step. More...
 
template<typename T >
distance_norm2 (int tstp, herm_matrix_timestep< T > &g1, herm_matrix< T > &g2)
  Evaluate the Euclidean norm between a herm_matrix_timestep and herm_matrix at a given time step. More...
 
template<typename T >
distance_norm2 (int tstp, herm_matrix< T > &g1, herm_matrix_timestep< T > &g2)
  Evaluate the Euclidean norm between a herm_matrix and herm_matrix_timestep at a given time step. More...
 
template<typename T >
distance_norm2 (int tstp, herm_matrix_timestep< T > &g1, herm_matrix_timestep< T > &g2)
  Evaluate the Euclidean norm between a herm_matrix_timestep and herm_matrix_timestep at a given time step. More...
 
template<typename T >
distance_norm2 (int tstp, herm_matrix_timestep_view< T > &g1, herm_matrix< T > &g2)
  Evaluate the Euclidean norm between a herm_matrix_timestep_view and herm_matrix at a given time step. More...
 
template<typename T >
distance_norm2 (int tstp, herm_matrix< T > &g1, herm_matrix_timestep_view< T > &g2)
  Evaluate the Euclidean norm between a herm_matrix and herm_matrix_timestep_view at a given time step. More...
 
template<typename T >
distance_norm2 (int tstp, herm_matrix_timestep< T > &g1, herm_matrix_timestep_view< T > &g2)
  Evaluate the Euclidean norm between a herm_matrix_timestep and herm_matrix_timestep_view at a given time step. More...
 
template<typename T >
distance_norm2 (int tstp, herm_matrix_timestep_view< T > &g1, herm_matrix_timestep< T > &g2)
  Evaluate the Euclidean norm between a herm_matrix_timestep_view and herm_matrix_timestep at a given time step. More...
 
template<typename T >
distance_norm2 (int tstp, herm_matrix_timestep_view< T > &g1, herm_matrix_timestep_view< T > &g2)
  Evaluate the Euclidean norm between a herm_matrix_timestep_view and herm_matrix_timestep_view at a given time step. More...
 
template<typename T >
distance_norm2 (herm_matrix_timestep_view< T > &g1, herm_matrix_timestep< T > &g2)
 
template<typename T >
distance_norm2 (herm_matrix_timestep< T > &g1, herm_matrix_timestep< T > &g2)
 
template<typename T >
distance_norm2 (int tstp, herm_pseudo< T > &g1, herm_pseudo< T > &g2)
 
template<typename T >
distance_norm2_eigen (int tstp, herm_matrix_timestep< T > &g1, herm_matrix< T > &g2)
  Evaluate the Euclidean norm between 'herm_matrix_timestep' and 'herm_matrix' at a given time step. More...
 
template<typename T >
distance_norm2_les (int tstp, herm_matrix< T > &g1, herm_matrix< T > &g2)
  Evaluate the Euclidean norm between the lesser components of two herm_matrces at a given time step. More...
 
template<typename T >
distance_norm2_les (int tstp, herm_matrix_timestep< T > &g1, herm_matrix< T > &g2)
  Evaluate the Euclidean norm between the lesser components a herm_matrix_timestep and herm_matrix at a given time step. More...
 
template<typename T >
distance_norm2_les (int tstp, herm_matrix< T > &g1, herm_matrix_timestep< T > &g2)
  Evaluate the Euclidean norm between the lesser components a herm_matrix and herm_matrix_timestep at a given time step. More...
 
template<typename T >
distance_norm2_les (int tstp, herm_matrix_timestep< T > &g1, herm_matrix_timestep< T > &g2)
  Evaluate the Euclidean norm between the lesser components a herm_matrix_timestep and herm_matrix_timestep at a given time step. More...
 
template<typename T >
distance_norm2_les (int tstp, herm_matrix_timestep_view< T > &g1, herm_matrix< T > &g2)
  Evaluate the Euclidean norm between the lesser components a herm_matrix_timestep_view and herm_matrix at a given time step. More...
 
template<typename T >
distance_norm2_les (int tstp, herm_matrix< T > &g1, herm_matrix_timestep_view< T > &g2)
  Evaluate the Euclidean norm between the lesser components a herm_matrix and herm_matrix_timestep_view at a given time step. More...
 
template<typename T >
distance_norm2_les (int tstp, herm_matrix_timestep< T > &g1, herm_matrix_timestep_view< T > &g2)
  Evaluate the Euclidean norm between the lesser components a herm_matrix_timestep and herm_matrix_timestep_view at a given time step. More...
 
template<typename T >
distance_norm2_les (int tstp, herm_matrix_timestep_view< T > &g1, herm_matrix_timestep< T > &g2)
  Evaluate the Euclidean norm between the lesser components a herm_matrix_timestep_view and herm_matrix_timestep at a given time step. More...
 
template<typename T >
distance_norm2_les (int tstp, herm_matrix_timestep_view< T > &g1, herm_matrix_timestep_view< T > &g2)
  Evaluate the Euclidean norm between the lesser components a herm_matrix_timestep_view and herm_matrix_timestep_view at a given time step. More...
 
template<typename T >
distance_norm2_ret (int tstp, herm_matrix< T > &g1, herm_matrix< T > &g2)
  Evaluate the Euclidean norm between the retarded components of two herm_matrix at a given time step. More...
 
template<typename T >
distance_norm2_ret (int tstp, herm_matrix_timestep< T > &g1, herm_matrix< T > &g2)
  Evaluate the Euclidean norm between the retarded components a herm_matrix_timestep and herm_matrix at a given time step. More...
 
template<typename T >
distance_norm2_ret (int tstp, herm_matrix< T > &g1, herm_matrix_timestep< T > &g2)
  Evaluate the Euclidean norm between the retarded components a herm_matrix and herm_matrix_timestep at a given time step. More...
 
template<typename T >
distance_norm2_ret (int tstp, herm_matrix_timestep< T > &g1, herm_matrix_timestep< T > &g2)
  Evaluate the Euclidean norm between the retarded components a herm_matrix_timestep and herm_matrix_timestep at a given time step. More...
 
template<typename T >
distance_norm2_ret (int tstp, herm_matrix_timestep_view< T > &g1, herm_matrix< T > &g2)
  Evaluate the Euclidean norm between the retarded components a herm_matrix_timestep_view and herm_matrix at a given time step. More...
 
template<typename T >
distance_norm2_ret (int tstp, herm_matrix< T > &g1, herm_matrix_timestep_view< T > &g2)
  Evaluate the Euclidean norm between the retarded components a herm_matrix and herm_matrix_timestep_view at a given time step. More...
 
template<typename T >
distance_norm2_ret (int tstp, herm_matrix_timestep< T > &g1, herm_matrix_timestep_view< T > &g2)
  Evaluate the Euclidean norm between the retarded components a herm_matrix_timestep and herm_matrix_timestep_view at a given time step. More...
 
template<typename T >
distance_norm2_ret (int tstp, herm_matrix_timestep_view< T > &g1, herm_matrix_timestep< T > &g2)
  Evaluate the Euclidean norm between the retarded components a herm_matrix_timestep_view and herm_matrix_timestep at a given time step. More...
 
template<typename T >
distance_norm2_ret (int tstp, herm_matrix_timestep_view< T > &g1, herm_matrix_timestep_view< T > &g2)
  Evaluate the Euclidean norm between the retarded components a herm_matrix_timestep_view and herm_matrix_timestep_view at a given time step. More...
 
template<typename T >
distance_norm2_tv (int tstp, herm_matrix< T > &g1, herm_matrix< T > &g2)
  Evaluate the Euclidean norm between the left-mixing components of two herm_matrces at a given time step. More...
 
template<typename T >
distance_norm2_tv (int tstp, herm_matrix_timestep< T > &g1, herm_matrix< T > &g2)
  Evaluate the Euclidean norm between the left-mixing components a herm_matrix_timestep and herm_matrix at a given time step. More...
 
template<typename T >
distance_norm2_tv (int tstp, herm_matrix< T > &g1, herm_matrix_timestep< T > &g2)
  Evaluate the Euclidean norm between the left-mixing components a herm_matrix and herm_matrix_timestep at a given time step. More...
 
template<typename T >
distance_norm2_tv (int tstp, herm_matrix_timestep< T > &g1, herm_matrix_timestep< T > &g2)
  Evaluate the Euclidean norm between the left-mixing components a herm_matrix_timestep and herm_matrix_timestep at a given time step. More...
 
template<typename T >
distance_norm2_tv (int tstp, herm_matrix_timestep_view< T > &g1, herm_matrix< T > &g2)
  Evaluate the Euclidean norm between the left-mixing components a herm_matrix_timestep_view and herm_matrix at a given time step. More...
 
template<typename T >
distance_norm2_tv (int tstp, herm_matrix< T > &g1, herm_matrix_timestep_view< T > &g2)
  Evaluate the Euclidean norm between the left-mixing components a herm_matrix and herm_matrix_timestep_view at a given time step. More...
 
template<typename T >
distance_norm2_tv (int tstp, herm_matrix_timestep< T > &g1, herm_matrix_timestep_view< T > &g2)
  Evaluate the Euclidean norm between the left-mixing components a herm_matrix_timestep and herm_matrix_timestep_view at a given time step. More...
 
template<typename T >
distance_norm2_tv (int tstp, herm_matrix_timestep_view< T > &g1, herm_matrix_timestep< T > &g2)
  Evaluate the Euclidean norm between the left-mixing components a herm_matrix_timestep_view and herm_matrix_timestep at a given time step. More...
 
template<typename T >
distance_norm2_tv (int tstp, herm_matrix_timestep_view< T > &g1, herm_matrix_timestep_view< T > &g2)
  Evaluate the Euclidean norm between the left-mixing components a herm_matrix_timestep_view and herm_matrix_timestep_view at a given time step. More...
 
template<typename T >
void dyson (herm_matrix< T > &G, T mu, function< T > &H, herm_matrix< T > &Sigma, T beta, T h, const int SolveOrder, const int matsubara_method, const bool force_hermitian)
  Solver of the Dyson equation in the integral-differential form for a Green's function \(G\) More...
 
template<typename T >
void dyson_mat (herm_matrix< T > &G, T mu, function< T > &H, herm_matrix< T > &Sigma, T beta, const int SolveOrder, const int method, const bool force_hermitian)
  Dyson solver (integral-differential form) for a Green's function \(G\) More...
 
template<typename T >
void dyson_mat (herm_matrix< T > &G, T mu, function< T > &H, function< T > &SigmaMF, herm_matrix< T > &Sigma, T beta, const int SolveOrder, const int method, const bool force_hermitian)
  Dyson solver (integral-differential form) for a Green's function \(G\). Global interface More...
 
template<typename T >
void dyson_start (herm_matrix< T > &G, T mu, function< T > &H, herm_matrix< T > &Sigma, T beta, T h, const int SolveOrder)
  Start-up procedure for solving the Dyson equation of the integral-differential form for a Green's function \(G\) More...
 
template<typename T >
void dyson_timestep (int n, herm_matrix< T > &G, T mu, function< T > &H, herm_matrix< T > &Sigma, T beta, T h, const int SolveOrder)
  One step Dyson solver (integral-differential form) for a Green's function \(G\) More...
 
template<typename T >
void dyson_timestep_omp (int omp_num_threads, int n, herm_matrix< T > &G, T lam0, function< T > &H, herm_matrix< T > &Sigma, T beta, T h, int SolveOrder)
  One step Dyson solver (integral-differential form) for a Green's function \(G\) using openMP parallelization More...
 
template<typename T >
void extrapolate_timestep (int n, herm_matrix< T > &G, int SolveOrder)
  k-th order polynomial extrapolation to t=n+1 of the retarded, lesser and left-mixing components of herm_matrix. More...
 
template<typename T >
void extrapolate_timestep (int n, function< T > &f, int ExtrapolationOrder)
  k-th order polynomial extrapolation to t=n+1 of the contour function. More...
 
template<typename T >
fermi (T beta, T omega)
  Evaluates the Fermi distribution function. More...
 
template<typename T >
dvector fermi (T beta, dvector &omega)
  Evaluates the Fermi distribution function for multiple energies. More...
 
template<typename T >
void force_matsubara_hermitian (herm_matrix< T > &G)
  Force the Matsubara component of herm_matrix to be a hermitian matrix at each \( \tau \). More...
 
template<class GG >
void force_matsubara_hermitian (GG &G)
  Force the Matsubara component of a two-time contour object to be a hermitian matrix at each \( \tau \). More...
 
template<typename T >
void get_gtr (const int i, const int j, std::complex< T > &G_gtr, herm_matrix< T > &G, herm_matrix< T > &Gcc)
 
template<typename T >
void get_gtr (const int i, const int j, cdmatrix &G_gtr, herm_matrix< T > &G, herm_matrix< T > &Gcc)
 
template<typename T >
void get_gtr (const int i, const int j, std::complex< T > &G_gtr, herm_matrix< T > &G)
 
template<typename T >
void get_gtr (const int i, const int j, cdmatrix &G_gtr, herm_matrix< T > &G)
 
template<typename T >
void get_gtr (const int i, const int j, std::complex< T > &G_gtr, herm_matrix_timestep< T > &G, herm_matrix_timestep< T > &Gcc)
 
template<typename T >
void get_gtr (const int i, const int j, cdmatrix &G_gtr, herm_matrix_timestep< T > &G, herm_matrix_timestep< T > &Gcc)
 
template<typename T >
void get_gtr (const int i, const int j, std::complex< T > &G_gtr, herm_matrix_timestep< T > &G)
 
template<typename T >
void get_gtr (const int i, const int j, cdmatrix &G_gtr, herm_matrix_timestep< T > &G)
 
template<typename T >
void get_gtr (const int i, const int j, std::complex< T > &G_gtr, herm_matrix_timestep_view< T > &G, herm_matrix_timestep_view< T > &Gcc)
  Returns the greater component of a general contour function at given times. More...
 
template<typename T >
void get_gtr (const int i, const int j, cdmatrix &G_gtr, herm_matrix_timestep_view< T > &G, herm_matrix_timestep_view< T > &Gcc)
  Returns the greater component of a general contour function at given times. More...
 
template<typename T >
void get_gtr (const int i, const int j, std::complex< T > &G_gtr, herm_matrix_timestep_view< T > &G)
  Returns the greater component of a hermitian contour function at given times. More...
 
template<typename T >
void get_gtr (const int i, const int j, cdmatrix &G_gtr, herm_matrix_timestep_view< T > &G)
  Returns the greater component of a hermitian contour function at given times. More...
 
template<typename T >
void get_les (const int i, const int j, std::complex< T > &G_les, herm_matrix< T > &G, herm_matrix< T > &Gcc)
 
template<typename T >
void get_les (const int i, const int j, cdmatrix &G_les, herm_matrix< T > &G, herm_matrix< T > &Gcc)
 
template<typename T >
void get_les (const int i, const int j, std::complex< T > &G_les, herm_matrix< T > &G)
 
template<typename T >
void get_les (const int i, const int j, cdmatrix &G_les, herm_matrix< T > &G)
 
template<typename T >
void get_les (const int i, const int j, std::complex< T > &G_les, herm_matrix_timestep< T > &G, herm_matrix_timestep< T > &Gcc)
 
template<typename T >
void get_les (const int i, const int j, cdmatrix &G_les, herm_matrix_timestep< T > &G, herm_matrix_timestep< T > &Gcc)
 
template<typename T >
void get_les (const int i, const int j, std::complex< T > &G_les, herm_matrix_timestep< T > &G)
 
template<typename T >
void get_les (const int i, const int j, cdmatrix &G_les, herm_matrix_timestep< T > &G)
 
template<typename T >
void get_les (const int i, const int j, std::complex< T > &G_les, herm_matrix_timestep_view< T > &G, herm_matrix_timestep_view< T > &Gcc)
  Returns the lesser component of a general contour function at given times. More...
 
template<typename T >
void get_les (const int i, const int j, cdmatrix &G_les, herm_matrix_timestep_view< T > &G, herm_matrix_timestep_view< T > &Gcc)
  Returns the lesser component of a general contour function at given times. More...
 
template<typename T >
void get_les (const int i, const int j, std::complex< T > &G_les, herm_matrix_timestep_view< T > &G)
  Returns the lesser component of a hermitian contour function at given times. More...
 
template<typename T >
void get_les (const int i, const int j, cdmatrix &G_les, herm_matrix_timestep_view< T > &G)
  Returns the lesser component of a hermitian contour function at given times. More...
 
template<typename T >
void get_mat (const int m, std::complex< T > &G_mat, herm_matrix< T > &G, herm_matrix< T > &Gcc)
 
template<typename T >
void get_mat (const int m, cdmatrix &G_mat, herm_matrix< T > &G, herm_matrix< T > &Gcc)
 
template<typename T >
void get_mat (const int m, std::complex< T > &G_mat, herm_matrix< T > &G)
 
template<typename T >
void get_mat (const int m, cdmatrix &G_mat, herm_matrix< T > &G)
 
template<typename T >
void get_mat (const int m, std::complex< T > &G_mat, herm_matrix_timestep< T > &G, herm_matrix_timestep< T > &Gcc)
 
template<typename T >
void get_mat (const int m, cdmatrix &G_mat, herm_matrix_timestep< T > &G, herm_matrix_timestep< T > &Gcc)
 
template<typename T >
void get_mat (const int m, std::complex< T > &G_mat, herm_matrix_timestep< T > &G)
 
template<typename T >
void get_mat (const int m, cdmatrix &G_mat, herm_matrix_timestep< T > &G)
 
template<typename T >
void get_mat (const int m, std::complex< T > &G_mat, herm_matrix_timestep_view< T > &G, herm_matrix_timestep_view< T > &Gcc)
  Returns the Matsubara component of a general contour function at given times. More...
 
template<typename T >
void get_mat (const int m, cdmatrix &G_mat, herm_matrix_timestep_view< T > &G, herm_matrix_timestep_view< T > &Gcc)
  Returns the Matsubara component of a general contour function at given times. More...
 
template<typename T >
void get_mat (const int m, std::complex< T > &G_mat, herm_matrix_timestep_view< T > &G)
  Returns the Matsubara component of a general contour function at given times. More...
 
template<typename T >
void get_mat (const int m, cdmatrix &G_mat, herm_matrix_timestep_view< T > &G)
  Returns the Matsubara component of a general contour function at given times. More...
 
template<typename T >
void get_ret (const int i, const int j, std::complex< T > &G_ret, herm_matrix< T > &G, herm_matrix< T > &Gcc)
 
template<typename T >
void get_ret (const int i, const int j, cdmatrix &G_ret, herm_matrix< T > &G, herm_matrix< T > &Gcc)
 
template<typename T >
void get_ret (const int i, const int j, std::complex< T > &G_ret, herm_matrix< T > &G)
 
template<typename T >
void get_ret (const int i, const int j, cdmatrix &G_ret, herm_matrix< T > &G)
 
template<typename T >
void get_ret (const int i, const int j, std::complex< T > &G_ret, herm_matrix_timestep< T > &G, herm_matrix_timestep< T > &Gcc)
 
template<typename T >
void get_ret (const int i, const int j, cdmatrix &G_ret, herm_matrix_timestep< T > &G, herm_matrix_timestep< T > &Gcc)
 
template<typename T >
void get_ret (const int i, const int j, std::complex< T > &G_ret, herm_matrix_timestep< T > &G)
 
template<typename T >
void get_ret (const int i, const int j, cdmatrix &G_ret, herm_matrix_timestep< T > &G)
 
template<typename T >
void get_ret (const int i, const int j, std::complex< T > &G_ret, herm_matrix_timestep_view< T > &G, herm_matrix_timestep_view< T > &Gcc)
  Returns the retarded component of a general contour function at given times. More...
 
template<typename T >
void get_ret (const int i, const int j, cdmatrix &G_ret, herm_matrix_timestep_view< T > &G, herm_matrix_timestep_view< T > &Gcc)
  Returns the retarded component of a general contour function at given times. More...
 
template<typename T >
void get_ret (const int i, const int j, std::complex< T > &G_ret, herm_matrix_timestep_view< T > &G)
  Returns the retarded component of a hermitian contour function at given times. More...
 
template<typename T >
void get_ret (const int i, const int j, cdmatrix &G_ret, herm_matrix_timestep_view< T > &G)
  Returns the retarded component of a hermitian contour function at given times. More...
 
template<class Matrix >
void get_timestep (int tstp, std::vector< Matrix > &data)
 
template<typename T , class Matrix >
void get_timestep_matrix_pseudo (int tstp, matrix< T > &G, std::vector< Matrix > &data)
 
template<class GG >
void get_timestep_pseudo (int tstp, GG &G, std::complex< double > *timestep)
 
template<typename T >
void get_tv (const int i, const int m, std::complex< T > &G_tv, herm_matrix< T > &G, herm_matrix< T > &Gcc)
 
template<typename T >
void get_tv (const int i, const int m, cdmatrix &G_ret, herm_matrix< T > &G, herm_matrix< T > &Gcc)
 
template<typename T >
void get_tv (const int i, const int m, std::complex< T > &G_tv, herm_matrix< T > &G)
 
template<typename T >
void get_tv (const int i, const int m, cdmatrix &G_ret, herm_matrix< T > &G)
 
template<typename T >
void get_tv (const int i, const int m, std::complex< T > &G_tv, herm_matrix_timestep< T > &G, herm_matrix_timestep< T > &Gcc)
 
template<typename T >
void get_tv (const int i, const int m, cdmatrix &G_ret, herm_matrix_timestep< T > &G, herm_matrix_timestep< T > &Gcc)
 
template<typename T >
void get_tv (const int i, const int m, std::complex< T > &G_tv, herm_matrix_timestep< T > &G)
 
template<typename T >
void get_tv (const int i, const int m, cdmatrix &G_ret, herm_matrix_timestep< T > &G)
 
template<typename T >
void get_tv (const int i, const int m, std::complex< T > &G_tv, herm_matrix_timestep_view< T > &G, herm_matrix_timestep_view< T > &Gcc)
  Returns the left-mixing component of a general contour function at given times. More...
 
template<typename T >
void get_tv (const int i, const int m, cdmatrix &G_ret, herm_matrix_timestep_view< T > &G, herm_matrix_timestep_view< T > &Gcc)
  Returns the left-mixing component of a general contour function at given times. More...
 
template<typename T >
void get_tv (const int i, const int m, std::complex< T > &G_tv, herm_matrix_timestep_view< T > &G)
  Returns the left-mixing component of a hermitian contour function at given times. More...
 
template<typename T >
void get_tv (const int i, const int m, cdmatrix &G_ret, herm_matrix_timestep_view< T > &G)
  Returns the left-mixing component of a hermitian contour function at given times. More...
 
template<typename T >
void get_vt (const int m, const int i, std::complex< T > &G_vt, herm_matrix< T > &G, herm_matrix< T > &Gcc)
 
template<typename T >
void get_vt (const int m, const int i, cdmatrix &G_vt, herm_matrix< T > &G, herm_matrix< T > &Gcc)
 
template<typename T >
void get_vt (const int m, const int i, std::complex< T > &G_vt, herm_matrix< T > &G)
 
template<typename T >
void get_vt (const int m, const int i, cdmatrix &G_vt, herm_matrix< T > &G)
 
template<typename T >
void get_vt (const int m, const int i, std::complex< T > &G_vt, herm_matrix_timestep< T > &G, herm_matrix_timestep< T > &Gcc)
 
template<typename T >
void get_vt (const int m, const int i, cdmatrix &G_vt, herm_matrix_timestep< T > &G, herm_matrix_timestep< T > &Gcc)
 
template<typename T >
void get_vt (const int m, const int i, std::complex< T > &G_vt, herm_matrix_timestep< T > &G)
 
template<typename T >
void get_vt (const int m, const int i, cdmatrix &G_vt, herm_matrix_timestep< T > &G)
 
template<typename T >
void get_vt (const int m, const int i, std::complex< T > &G_vt, herm_matrix_timestep_view< T > &G, herm_matrix_timestep_view< T > &Gcc)
  Returns the right-mixing component of a general contour function at given times. More...
 
template<typename T >
void get_vt (const int m, const int i, cdmatrix &G_vt, herm_matrix_timestep_view< T > &G, herm_matrix_timestep_view< T > &Gcc)
  Returns the right-mixing component of a general contour function at given times. More...
 
template<typename T >
void get_vt (const int m, const int i, std::complex< T > &G_vt, herm_matrix_timestep_view< T > &G)
  Returns the right-mixing component of a hermitian contour function at given times. More...
 
template<typename T >
void get_vt (const int m, const int i, cdmatrix &G_vt, herm_matrix_timestep_view< T > &G)
  Returns the right-mixing component of a hermitian contour function at given times. More...
 
template<typename T , class dos_function >
void green_equilibrium (herm_matrix< T > &G, dos_function &dos, double beta, double h, double mu, int limit, int nn)
  Equilibrium propagator for the given density of states More...
 
template<typename T >
void green_equilibrium_bethe (herm_matrix< T > &G, double beta, double h, int limit, int nn, double mu)
  Equilibrium propagator for Bethe semicircular density of states More...
 
template<typename T , class dos_function >
void green_equilibrium_mat (herm_matrix< T > &G, dos_function &dos, double beta, int limit=100, int nn=20, double mu=0.0)
 
template<typename T >
void green_equilibrium_mat_bethe (herm_matrix< T > &G, double beta, int limit, int nn, double mu)
  Equilibrium propagator for Bethe semicircular density of states. Matsubara only. More...
 
template<typename T >
void green_from_H (herm_matrix< T > &G, T mu, cdmatrix &eps, T beta, T h)
  Propagator for time-independent free Hamiltonian More...
 
template<typename T >
void green_from_H (int tstp, herm_matrix_timestep< T > &G, T mu, cdmatrix &eps, T beta, T h)
  Propagator for time-independent free Hamiltonian More...
 
template<typename T >
void green_from_H (int tstp, herm_matrix< T > &G, T mu, cdmatrix &eps, T beta, T h)
  Propagator for time-independent free Hamiltonian More...
 
template<typename T >
void green_from_H (herm_matrix< T > &G, T mu, cntr::function< T > &eps, T beta, T h, int SolveOrder, int cf_order)
  Propagator for time-dependent free Hamiltonian More...
 
template<typename T >
void green_from_H (int tstp, herm_matrix_timestep< T > &G, T mu, cntr::function< T > &eps, T beta, T h, bool fixHam, int SolveOrder, int cf_order)
  Propagator for time-dependent free Hamiltonian More...
 
template<typename T >
void green_from_H (int tstp, herm_matrix< T > &G, T mu, cntr::function< T > &eps, T beta, T h, bool fixHam, int SolveOrder, int cf_order)
  Propagator for time-dependent free Hamiltonian More...
 
template<typename T >
void green_single_pole_XX_timestep (int tstp, herm_matrix_timestep< T > &D0, T w, T beta, T h)
 
template<typename T , class Matrix >
void increment_timestep_matrix_pseudo (int tstp, matrix< T > &G, std::complex< T > alpha, std::vector< Matrix > &data)
 
template<typename T >
void interpolate_CF2 (int tstp, cntr::function< T > &H, cdmatrix &Hinter, int kt, bool fixHam=false)
  Interpolation for the second order propagator More...
 
template<typename T >
void interpolate_CF4 (int tstp, cntr::function< T > &H, cdmatrix &Hinte1, cdmatrix &Hinte2, int kt, bool fixHam=false)
  Interpolation for the forth order propagator More...
 
template<typename T >
cdmatrix interpolation (int tstp, double tinter, function< T > &f, int InterpolationOrder)
  k-th order polynomial interpolation of the contour function More...
 
template<typename T , class GG , int SIZE1>
void matsubara_dft (std::complex< T > *mdft, GG &G, int sig)
  Computes the Fourier series coefficients of a Matsubara function by plain DFT. More...
 
template<typename T , class GG , int SIZE1>
void matsubara_ft (std::complex< T > *result, int m, GG &G, std::complex< T > *mdft, int sig, T beta, int order)
  Computes the Fourier series coefficients of a Matsubara function by cubically corrected DFT. More...
 
template<typename T >
size_t mem_function (int nt, int size)
  Evaluate the memory necessary for a contour function. More...
 
template<typename T >
size_t mem_herm_matrix (int nt, int ntau, int size)
  Evaluate the memory necessary for a herm_matrix. More...
 
template<typename T >
size_t mem_herm_matrix_timestep (int tstp, int ntau, int size)
  Evaluate the memory necessary for a herm_matrix_timestep. More...
 
template<typename T >
void propagator_exp (int tstp, cntr::function< T > &U, cntr::function< T > &H, double dt, int order, int kt, bool fixHam=false)
  Propagator for time-dependent free Hamiltonian More...
 
template<typename T >
void Reduce_timestep (int tstp, int root, herm_matrix_timestep< T > &Gred, herm_matrix_timestep< T > &G)
  MPI reduce for the herm_matrix_timestep to a herm_matrix_timestep More...
 
template<typename T >
void Reduce_timestep (int tstp, int root, herm_matrix_timestep_view< T > &Gred, herm_matrix_timestep_view< T > &G)
  MPI reduce for the herm_matrix_timestep_view to a herm_matrix_timestep_view More...
 
template<typename T >
void Reduce_timestep (int tstp, int root, herm_matrix< T > &Gred, herm_matrix_timestep< T > &G)
  MPI reduce for the herm_matrix_timestep to a herm_matrix More...
 
template<typename T >
void Reduce_timestep (int tstp, int root, herm_matrix< T > &Gred, herm_matrix_timestep_view< T > &G)
  MPI reduce for the herm_matrix_timestep_view to a herm_matrix More...
 
template<typename T >
void Reduce_timestep (int tstp, int root, herm_matrix_timestep< T > &Gred, herm_matrix< T > &G)
  MPI reduce for the herm_matrix to a herm_matrix_timestep More...
 
template<typename T >
void Reduce_timestep (int tstp, int root, herm_matrix_timestep_view< T > &Gred, herm_matrix< T > &G)
  MPI reduce for the herm_matrix to a herm_matrix_timestep_view More...
 
template<typename T >
void Reduce_timestep (int tstp, int root, herm_matrix< T > &Gred, herm_matrix< T > &G)
  MPI reduce for the herm_matrix to a herm_matrix More...
 
template<typename T >
void response_convolution (int tstp, std::complex< T > &cc, herm_matrix< T > &W, int a1, int a2, function< T > &f, int b1, int b2, int kt, T beta, T h)
  Evaluate the convolution between a two-time contour function ( \(W\)) and a real-time function ( \(f\)) at the time step ( \(t\)); \( c(t) = \int_C dt' W_{a1,a2}(t,t') f_{b1,b2}(t') \). More...
 
template<typename T >
void response_convolution (int tstp, CPLX &cc, GREEN_TSTP &W, int a1, int a2, function< T > &f, int b1, int b2, int SolveOrder, T beta, T h)
 
template<typename T >
void response_convolution (int tstp, std::complex< T > &cc, herm_matrix_timestep< T > &W, int a1, int a2, function< T > &f, int b1, int b2, int kt, T beta, T h)
  Evaluate the convolution between a two-time contour function ( \(W\)) and a real-time function ( \(f\)) at the time step ( \(t\)); \( c(t) = \int_C dt' W_{a1,a2}(t,t') f_{b1,b2}(t') \). More...
 
template<typename T >
void response_convolution (int tstp, CPLX &cc, GREEN &W, int a1, int a2, function< T > &f, int b1, int b2, int SolveOrder, T beta, T h)
 
template<typename T >
void set_t0_from_mat (herm_matrix< T > &G)
  Set t=0 components of the two-time contour object from the Matsubara component. More...
 
template<class Matrix >
void set_timestep (int tstp, std::vector< Matrix > &data)
 
template<typename T , class Matrix >
void set_timestep_matrix_pseudo (int tstp, matrix< T > &G, std::vector< Matrix > &data)
 
template<class GG >
void set_timestep_pseudo (int tstp, GG &G, std::complex< double > *timestep)
 
template<typename T >
void set_tk_from_mat (herm_matrix< T > &G, int kt)
  Set components of herm_matrix at t=0,1,..kt from the Matsubara component. More...
 
template<typename T >
void vie2 (herm_matrix< T > &G, herm_matrix< T > &F, herm_matrix< T > &Fcc, herm_matrix< T > &Q, T beta, T h, const int SolveOrder, const int matsubara_method)
  One step VIE solver \((1+F)*G=Q\) for a Green's function \(G\) More...
 
template<typename T >
void vie2_mat (herm_matrix< T > &G, herm_matrix< T > &F, herm_matrix< T > &Fcc, herm_matrix< T > &Q, T beta, const int SolveOrder, const int method)
  VIE solver \((1+F)*G=Q\) for a Green's function \(G\) on the Matsubara axis More...
 
template<typename T >
void vie2_omp (int omp_num_threads, herm_matrix< T > &G, herm_matrix< T > &F, herm_matrix< T > &Fcc, herm_matrix< T > &Q, T beta, T h, const int SolveOrder, const int matsubara_method)
  One step VIE solver \((1+F)*G=Q\) for a Green's function \(G\). OpenMP parallelized More...
 
template<typename T >
void vie2_start (herm_matrix< T > &G, herm_matrix< T > &F, herm_matrix< T > &Fcc, herm_matrix< T > &Q, T beta, T h, const int SolveOrder)
  VIE solver \((1+F)*G=Q\) for a Green's function \(G\) for the first k timesteps More...
 
template<typename T >
void vie2_timestep (int n, herm_matrix< T > &G, herm_matrix< T > &F, herm_matrix< T > &Fcc, herm_matrix< T > &Q, T beta, T h, const int SolveOrder, const int matsubara_method)
  One step VIE solver \((1+F)*G=Q\) for a Green's function \(G\) at a given timestep More...
 
template<typename T >
void vie2_timestep_omp (int omp_num_threads, int tstp, herm_matrix< T > &G, herm_matrix< T > &F, herm_matrix< T > &Fcc, herm_matrix< T > &Q, T beta, T h, const int SolveOrder, const int matsubara_method)
  One step VIE solver \((1+F)*G=Q\) for Green's function for given timestep. OpenMP parallelized More...
 
template<typename T >
void vie2_timestep_sin (int n, herm_matrix< T > &G, function< T > &Gsin, herm_matrix< T > &F, herm_matrix< T > &Fcc, function< T > &Fsin,herm_matrix< T > &Q, function< T > &Qsin, T beta, T h, int SolveOrder)
  One step VIE solver \((1+F)*G=Q\) for Green's function with instantaneous contributions for given integration order. More...
 
template<typename T >
void vie2_timestep_sin_omp (int omp_num_threads, int tstp, herm_matrix< T > &G, function< T > &Gsin, herm_matrix< T > &F, herm_matrix< T > &Fcc, function< T > &Fsin, herm_matrix< T > &Q, function< T > &Qsin, T beta, T h, const int SolveOrder)
  One step VIE solver \((1+F)*G=Q\) for Green's function with instantaneous contributions for given integration order. OpenMP parallelized More...