ivutils
Loading...
Searching...
No Matches
InterpTransfer< arg_tt, container_tt, base_tt, index_tt, vec_alignement >::comm_t Struct Reference

manages two buffers: to send (receive) value to (from) another processor More...

#include <interp_transfer.h>

Collaboration diagram for InterpTransfer< arg_tt, container_tt, base_tt, index_tt, vec_alignement >::comm_t:

Public Member Functions

void init ()
 allocate memory for out- and in- buffers
 
void reset_buffer (int out)
 switch pointer bufptr
 
void transfer_dest (std::vector< val_t * > &buff, const std::vector< int > &meshinds, container_t *cont)
 adds inbuf values to destination buffers
 
void make_requests (reqpair_t arg, apMPIComm *comm)
 initialize MPI_Send and MPI_Recv procedures
 
void free_requests (reqpair_t arg, apMPIComm *comm)
 remove initialized mpi-procedures
 

Public Attributes

val_tbufptr
 points at outbuf or inbuf (depending on situation)
 
val_toutbuf
 buffer to send data to another processor
 
size_t outsz
 total size of outbuf
 
size_t outsz_vec = 0
 size of vectorized (beginning) part of outbuf
 
val_tinbuf
 buffer to receive data from another processor
 
size_t insz
 total size of inbuf
 
size_t insz_vec = 0
 size of vectorized (beginning) part of inbuf
 
ptrdiff_t ind = 0
 scalar index for filling buffers
 
packer_t destpack
 packer of pairs 'buffer number - index in buffer array', used to distribute values recieved from other processors: these values are initially received to input buffer, and then recorded to destination buffers buff
 

Detailed Description

template<class arg_tt, class container_tt, class base_tt = InterpolationRequestsPacker<typename container_tt::interp_form_t, typename container_tt::val_t>, class index_tt = typename base_tt::packer1_t::index_t, int vec_alignement = 1>
struct InterpTransfer< arg_tt, container_tt, base_tt, index_tt, vec_alignement >::comm_t

manages two buffers: to send (receive) value to (from) another processor


The documentation for this struct was generated from the following file: