Communication for a single field using MPI datatypes ( no intermediate buffers )
#include <UniformDirectScheme.h>
Classes | |
struct | CommInfo |
Public Types | |
using | Stencil = Stencil_T |
using | UniformMPIDatatypeInfo = walberla::communication::UniformMPIDatatypeInfo |
using | CommunicationItemInfo = walberla::communication::UniformMPIDatatypeInfo |
Public Member Functions | |
Construction & Destruction | |
UniformDirectScheme (const weak_ptr< StructuredBlockForest > &bf, const shared_ptr< UniformMPIDatatypeInfo > &dataInfo=shared_ptr< UniformMPIDatatypeInfo >(), const int tag=778) | |
UniformDirectScheme (const weak_ptr< StructuredBlockForest > &bf, const Set< SUID > &requiredBlockSelectors, const Set< SUID > &incompatibleBlockSelectors, const shared_ptr< UniformMPIDatatypeInfo > &dataInfo=shared_ptr< UniformMPIDatatypeInfo >(), const int tag=778) | |
Registration of data to communicate | |
void | addDataToCommunicate (const shared_ptr< UniformMPIDatatypeInfo > &dataInfo) |
Synchronous Communication | |
void | operator() () |
void | communicate () |
Asynchronous Communication | |
weak_ptr< StructuredBlockForest > | blockForest_ |
bool | setupRequired_ |
bool | communicationRunning_ |
Set< SUID > | requiredBlockSelectors_ |
Set< SUID > | incompatibleBlockSelectors_ |
std::vector< CommInfo > | sendInfos_ |
std::vector< CommInfo > | recvInfos_ |
std::vector< MPI_Request > | mpiRequests_ |
std::vector< shared_ptr< mpi::Datatype > > | mpiDatatypes_ |
std::vector< shared_ptr< UniformMPIDatatypeInfo > > | dataInfos_ |
int | tag_ |
void | startCommunication () |
void | wait () |
std::function< void()> | getStartCommunicateFunctor () |
std::function< void()> | getWaitFunctor () |
void | setup () |
using walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::CommunicationItemInfo = walberla::communication::UniformMPIDatatypeInfo |
using walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::Stencil = Stencil_T |
using walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::UniformMPIDatatypeInfo = walberla::communication::UniformMPIDatatypeInfo |
|
inlineexplicit |
|
inline |
void walberla::blockforest::communication::UniformDirectScheme< Stencil >::addDataToCommunicate | ( | const shared_ptr< UniformMPIDatatypeInfo > & | dataInfo | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
protected |
void walberla::blockforest::communication::UniformDirectScheme< Stencil >::startCommunication |
void walberla::blockforest::communication::UniformDirectScheme< Stencil >::wait |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |