Peano
Loading...
Searching...
No Matches
STDVectorOverContainerOfPointers.h
Go to the documentation of this file.
1// This file is part of the Peano project. For conditions of distribution and
2// use, please see the copyright notice at www.peano-framework.org
3#pragma once
4
5#include <algorithm>
6#include <vector>
7
8#include "stacks.h"
9#include "STDVectorStack.h"
10#include "tarch/Assertions.h"
14#include "tarch/logging/Log.h"
16#include "tarch/mpi/Rank.h"
18
19namespace peano4 {
20 namespace stacks {
21 template <class T>
22 class STDVectorOverContainerOfPointers;
23 } // namespace stacks
24} // namespace peano4
25
26
168template <class T>
448
449
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.
bool tryToFinishSendOrReceive()
Finish send or receive if possible and return whether non-blocking data exchange has completed.
void triggerNonBlockingDataReceive()
Prepare receive buffer and trigger non-blocking receive of actual data.
void startReceive(peano4::grid::TraversalObserver::SendReceiveContext, int rank, int tag, MPI_Comm comm, int numberOfElements)
Receive whole stack via MPI.
peano4::grid::TraversalObserver::SendReceiveContext _context
Have to memorize this one for receives.
void workInReceivedData()
Take the flattened actual data and unpack it into a proper stack.
void startSend(peano4::grid::TraversalObserver::SendReceiveContext, int rank, int tag, MPI_Comm comm)
Start the send process.
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.
Log Device.
Definition Log.h:517