NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library

◆ convolution_density_matrix() [1/4]

template<typename T , class GG >
void cntr::convolution_density_matrix ( int  n,
cdmatrix &  rho,
GG &  A,
GG &  Acc,
function< T > &  ft,
GG &  B,
GG &  Bcc,
beta,
h,
int  SolveOrder 
)

Returns the result of the contour convolution and a contour function for a density matrix at a given time-step

Purpose

Calls convolution routines to compute contour convolution \(\rho=-i (A*FxB)^<\) of the objects 'A' and 'B' and a time-dependent contour function \(F(t)\) at a given time step 't=nh'. If 'n=-1', one performs the Matsubara convolution. The objects 'A' and 'B' are of the class type 'GG'. Works for a scalar and square matrices.

Parameters
n

[int] number of the time step ('t=nh')

rho

[cdmatrix] complex function to which the result of the convolution is given

A

[GG] contour Green's function

Acc

[GG] complex conjugate to A

ft

[function] contour function F(t).

B

[GG] contour Green's function

Bcc

[GG] complex conjugate to B

beta

inversed temperature

h

time interval

SolveOrder

[int] integrator order

Definition at line 3784 of file cntr_convolution_impl.hpp.

3785  {
3786  int size1 = A.size1();
3787  int element_size = size1;
3788  std::complex<T> *rho_ptr;
3789  rho_ptr = new std::complex<T>[element_size];
3790 
3791  convolution_density_matrix<T, GG>(n, rho_ptr, A, Acc, ft, B, Bcc, integration::I<T>(SolveOrder), beta, h);
3792  map_ptr2matrix<T>(size1, size1, rho_ptr, rho);
3793 
3794  delete[] rho_ptr;
3795 }