22 class STDVectorOverContainerOfPointers;
450#include "STDVectorOverContainerOfPointers.cpph"
SendReceiveContext
There are three different scenarios when we merge data:
Stack with vector over pointers aka with varying elements per stack entry.
int prepareMetaDataToSendOut()
STDVectorOverContainerOfPointers()
bool tryToFinishSendOrReceive()
Finish send or receive if possible and return whether non-blocking data exchange has completed.
void prepareDataToSendOut()
void triggerNonBlockingDataReceive()
Prepare receive buffer and trigger non-blocking receive of actual data.
static tarch::logging::Log _log
Logging device.
void startReceive(peano4::grid::TraversalObserver::SendReceiveContext, int rank, int tag, MPI_Comm comm, int numberOfElements)
Receive whole stack via MPI.
T::DoFType * _deepCopyDataBuffer
peano4::grid::TraversalObserver::SendReceiveContext _context
Have to memorize this one for receives.
peano4::stacks::STDVectorStack< T > Base
MPI_Request * _metaDataDebugMPIRequest
void workInReceivedData()
Take the flattened actual data and unpack it into a proper stack.
double * _metaDataDebugBuffer
void startSend(peano4::grid::TraversalObserver::SendReceiveContext, int rank, int tag, MPI_Comm comm)
Start the send process.
int * _metaDataSizeBuffer
MPI_Request * _metaDataSizeMPIRequest
void clone(const STDVectorOverContainerOfPointers< T > &data)
Clone data into the current object on which clone() is called.
void workInReceivedMetaData()
Take the received data and work them into the current data.
Default stack implementation using std::vector.