NESSi  v1.0.2 The NonEquilibrium Systems Simulation Library
cntr::distributed_array< T > Class Template Reference

Auxiliary data structure for handling set of data blocks and includes usual MPI processes on them. More...

#include <cntr_distributed_array_decl.hpp>

Inheritance diagram for cntr::distributed_array< T >:

## Public Member Functions

T * block (int j)
Returns the pointer to block j. More...

int blocksize (void) const

void clear (void)
Clear all data More...

T * data (void) const

distributed_array ()

distributed_array (const distributed_array &g)

distributed_array (int n, int maxlen, bool mpi)
Initializes the distributed_array class. More...

int firstblock_rank (void)
Return first blocks on rank. More...

int maxlen (void) const

void mpi_bcast_all (void)
MPI Allgather equivalent for the distributed array More...

void mpi_bcast_all (void)

void mpi_bcast_block (int j)
MPI broadcast of j-th block More...

void mpi_bcast_block (int j)

void mpi_gather (void)

void mpi_gather (int dest)
MPI gather for the distributed array More...

void mpi_send_block (int j, int dest)
Sends the j-th block to the MPI rank dest More...

int n (void) const

int numblock_rank (void)
Return number of blocks on rank. More...

distributed_arrayoperator= (const distributed_array &g)

bool rank_owns (int k) const

void reset_blocksize (int blocksize)
Reset the block size for each block. More...

int tid (void) const

std::vector< int > tid_map (void) const

~distributed_array ()

## Detailed Description

### template<typename T> class cntr::distributed_array< T >

Auxiliary data structure for handling set of data blocks and includes usual MPI processes on them.

Purpose

Auxiliary data structure for handling of data blocks (total number is n_) , which are stored in * contiguous form in member data_ and includes usual MPI routines. The class identity is marked by * tid_ $$\in (0,\ldots,ntasks_-1)$$ and the value of the tid_ is just the MPI rank or 0 if MPI is not defined. Each data block j is owned by precisely one process, which is given by $$tid * _map(j) = tid_$$. The member maxlen marks the maximum size reserved for the block. NOTE: even if the block is not owned by the process, the space for the data is allocated; the ownership plays a role when the data are manipulated

Definition at line 30 of file cntr_distributed_array_decl.hpp.

The documentation for this class was generated from the following files: