NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library

◆ distributed_timestep_array() [3/3]

template<typename T >
cntr::distributed_timestep_array< T >::distributed_timestep_array ( int  n,
int  nt,
int  ntau,
int  size,
int  sig,
bool  mpi 
)

Initializes the distributed_timestep_array class.

Purpose

Initializes the distributed_timestep_array class including n blocks of the class herm_matrix_ti* mestep_view, which serves as an interface to herm_matrix_timestep without copying the data. At * the initialization the pointers don't point anywhere yet.

Parameters
n

Number of blocks

nt

The maximum allowed number of timestep (set by size of data_)

ntau

Number of points on Matsubara axis

size

Matrix rank of the herm_matrix_timestep function

sig

Set sig = -1 for fermions or sig = +1 for bosons

mpi

If 'true' use MPI, otherwise one task with tid_=0

Definition at line 87 of file cntr_distributed_timestep_array_impl.hpp.

References cntr::distributed_array< T >::n().

87  {
88  assert(-1<=nt && 0<=ntau && sig*sig==1 && 1<=size);
89  int size_tstp=(ntau+1+2*(nt+1))*size*size;
90  int maxlen=size_tstp;
91  data_=cntr::distributed_array<std::complex<T> >(n,maxlen,mpi);
92  n_=data_.n();
93  tid_=data_.tid();
94  ntasks_=data_.ntasks();
95  tstp_=-2;
96  nt_=nt;
97  ntau_=ntau;
98  size_=size;
99  sig_=sig;
100  // they all point nowhere, since tstp=-2
101  G_=std::vector<cntr::herm_matrix_timestep_view<T> >(n_);
102 }
Auxiliary data structure for handling set of data blocks and includes usual MPI processes on them...
+ Here is the call graph for this function: