NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library

◆ convolution() [2/2]

template<typename T >
void cntr::convolution ( herm_matrix< T > &  C,
herm_matrix< T > &  A,
herm_matrix< T > &  Acc,
function< T > &  ft,
herm_matrix< T > &  B,
herm_matrix< T > &  Bcc,
beta,
h,
int  SolveOrder 
)

Returns the result of the contour convolution of two matrices and a function object

Purpose

Calls convolution routines to compute contour convolution C=A*fxB. The objects A,B and C are of the class 'herm_matrix'. If 'n=-1', one performs Matsubara convolution with a function 'F(-1)', otherwise with 'F(t)'. Works for a scalar and square matrices.

Parameters
C

[herm_matrix] Matrix to which the result of the convolution is given

A

[herm_matrix] contour Green's function

Acc

[herm_matrix] complex conjugate to A

ft

[function] contour function

B

[herm_matrix] contour Green's function

Bcc

[herm_matrix] complex conjugate to B

beta

inversed temperature

h

time interval

SolveOrder

[int] integrator order

Definition at line 3170 of file cntr_convolution_impl.hpp.

References cntr::herm_matrix< T >::nt(), and cntr::function< T >::ptr().

3172  {
3173  int tstp;
3174  convolution_matsubara(C, A, ft.ptr(-1), B, integration::I<T>(SolveOrder), beta);
3175  for (tstp = 0; tstp <= C.nt(); tstp++)
3176  convolution_timestep<T>(tstp, C, A, Acc, ft, B, Bcc, beta, h, SolveOrder);
3177 }
+ Here is the call graph for this function: