NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library

◆ convolution_omp() [2/2]

template<typename T >
void cntr::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,
beta,
h,
int  SolveOrder 
)

Returns convolution \(C = A\ast B\) for all timesteps.

Purpose

Computes contour convolution C=A*B of the objects with class 'herm_matrix' for all time steps. Works for a scalar and square matrices. openMP parallelized version.

Parameters
omp_num_threads

[int] The number of openMP threads to be used. Set to the number of threads in the current team.

C

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

A

[herm_matrix] contour Green's function

Acc

[herm_matrix] hermitian conjugate of A

B

[herm_matrix] contour Green's function

Bcc

[herm_matrix] hermitian conjugate of B

beta

inversed temperature

h

time step interval

SolveOrder

[int] integrator order

Definition at line 5932 of file cntr_convolution_impl.hpp.

5934  {
5935  int tstp;
5936  for (tstp = -1; tstp <= C.nt(); tstp++)
5937  convolution_timestep_omp<T>(omp_num_threads, tstp, C, A, Acc, B, Bcc, beta, h, SolveOrder);
5938 }