|
waLBerla 7.2
|
#include <BufferSystemHelper.h>
Inheritance diagram for walberla::mpi::internal::KnownSizeCommunication< RecvBuffer_T, SendBuffer_T >:Public Member Functions | |
| KnownSizeCommunication (const MPI_Comm &communicator, int tag=0) | |
| ~KnownSizeCommunication () override=default | |
| void | send (MPIRank receiver, const SendBuffer_T &sendBuffer) override |
| Send buffer content to receiver using MPI_ISend, request is stored internally -> see waitForSends() | |
| void | waitForSends () override |
| Wait for all sends to complete. | |
| void | scheduleReceives (std::map< MPIRank, ReceiveInfo > &recvInfos) override |
| Executes MPI_Irecv calls, with the recvInfos as target memory. | |
| MPIRank | waitForNextReceive (std::map< MPIRank, ReceiveInfo > &recvInfos) override |
| size field of recvInfos is expected to be valid | |
Public Member Functions inherited from walberla::mpi::internal::AbstractCommunication< RecvBuffer_T, SendBuffer_T > | |
| AbstractCommunication (const MPI_Comm &communicator, int tag=0) | |
| virtual | ~AbstractCommunication ()=default |
| virtual int | getTag () const |
| virtual MPI_Comm | getCommunicator () const |
Private Attributes | |
| bool | sending_ {false} |
| bool | receiving_ {false} |
| std::vector< MPI_Request > | sendRequests_ |
| std::vector< MPI_Request > | recvRequests_ |
Additional Inherited Members | |
Protected Attributes inherited from walberla::mpi::internal::AbstractCommunication< RecvBuffer_T, SendBuffer_T > | |
| MPI_Comm | communicator_ |
| int | tag_ |
|
inline |
|
overridedefault |
|
overridevirtual |
Executes MPI_Irecv calls, with the recvInfos as target memory.
| recvInfos | Map that has entries for all ranks where messages are expected. The KnownSizeCommunication also expects the size field to be valid ( defining the expected message size) Do not change/read the recvInfos after scheduleReceive() call and before waitForNextReceive() is completed |
Implements walberla::mpi::internal::AbstractCommunication< RecvBuffer_T, SendBuffer_T >.
|
overridevirtual |
Send buffer content to receiver using MPI_ISend, request is stored internally -> see waitForSends()
Implements walberla::mpi::internal::AbstractCommunication< RecvBuffer_T, SendBuffer_T >.
|
overridevirtual |
size field of recvInfos is expected to be valid
Implements walberla::mpi::internal::AbstractCommunication< RecvBuffer_T, SendBuffer_T >.
|
overridevirtual |
Wait for all sends to complete.
Implements walberla::mpi::internal::AbstractCommunication< RecvBuffer_T, SendBuffer_T >.
|
private |
|
private |
|
private |
|
private |