NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library

◆ convolution_density_matrix() [2/4]

template<typename T , class GG >
void cntr::convolution_density_matrix ( int  n,
cdmatrix &  rho,
GG &  A,
function< T > &  ft,
GG &  B,
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\ast F\ast B)^<\) 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

ft

[function] contour function F(t).

B

[GG] contour Green's function

beta

inversed temperature

h

time interval

SolveOrder

[int] integrator order

Definition at line 3870 of file cntr_convolution_impl.hpp.

3871  {
3872  int size1 = A.size1();
3873  int element_size = size1;
3874  std::complex<T> *rho_ptr;
3875  rho_ptr = new std::complex<T>[element_size];
3876 
3877  convolution_density_matrix<T, GG>(n, rho_ptr, A, A, ft, B, B, integration::I<T>(SolveOrder), beta, h);
3878  map_ptr2matrix<T>(size1, size1, rho_ptr, rho);
3879 
3880  delete[] rho_ptr;
3881 }