Communication Scheme class for ghost layer based communication with the direction neighbors.
Most common use case: Reduce a GhostLayerField with all processes in one direction, e.g. summing up all values in one direction
#include <DirectionBasedReduceScheme.h>
Public Member Functions | |
Construction & Destruction | |
DirectionBasedReduceScheme (const shared_ptr< StructuredBlockForest > &bf) | |
DirectionBasedReduceScheme (const shared_ptr< StructuredBlockForest > &bf, const shared_ptr< mpi::BufferSystem > &bs) | |
Pack Info Registration | |
size_t | addPackInfo (const shared_ptr< walberla::communication::ReducePackInfo > &pi) |
Synchronous Communication | |
shared_ptr< StructuredBlockForest > | blockForest_ |
shared_ptr< mpi::BufferSystem > | bufferSystem_ |
std::vector< shared_ptr< walberla::communication::ReducePackInfo > > | packInfos_ |
std::vector< Block * > | localBlocks_ |
std::vector< std::vector< Block * > > | localCopy_ |
std::vector< std::vector< BlockID > > | remoteSend_ |
void | operator() () |
void | communicate () |
void | copyIntoMPIBuffers () |
Uses PackInfo's of the given step to copy data into the MPI Buffers. More... | |
void | mpiCommunication () |
Communicates data from MPI buffers using a BufferSystem. More... | |
void | copyFromMPIBuffers () |
Copies received data back into own ghost layers. More... | |
void | readHeader (mpi::RecvBuffer &buf, BlockID &id) const |
void | writeHeader (mpi::SendBuffer &buf, const BlockID &id) const |
void | init () |
|
inlineexplicit |
|
inlineexplicit |
size_t walberla::blockforest::DirectionBasedReduceScheme< dir_ >::addPackInfo | ( | const shared_ptr< walberla::communication::ReducePackInfo > & | pi | ) |
|
inline |
|
protected |
Copies received data back into own ghost layers.
|
protected |
Uses PackInfo's of the given step to copy data into the MPI Buffers.
|
private |
|
inlineprotected |
Communicates data from MPI buffers using a BufferSystem.
|
inline |
|
inlineprotected |
|
inlineprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |