walberla::communication::ReducePackInfo Class Referenceabstract

Detailed Description

Data packing/unpacking for reduce operations This class can be used, when multiple data sets from different senders should be reduced at the receiver.

#include <ReducePackInfo.h>

+ Inheritance diagram for walberla::communication::ReducePackInfo:

Public Member Functions

 ReducePackInfo ()
 
virtual ~ReducePackInfo ()=default
 
size_t getSize () const
 
void reset ()
 
void communicateLocal (const IBlock *sender, IBlock *receiver, stencil::Direction dir)
 
virtual void packData (const IBlock *sender, stencil::Direction dir, mpi::SendBuffer &outBuffer)=0
 
void unpackData (IBlock *receiver, stencil::Direction dir, mpi::RecvBuffer &buffer)
 

Protected Member Functions

virtual size_t initData (IBlock *receiver, stencil::Direction dir)=0
 
virtual void safeCommunicateLocal (const IBlock *sender, IBlock *receiver, stencil::Direction dir)=0
 
virtual void safeUnpackData (IBlock *receiver, stencil::Direction dir, mpi::RecvBuffer &buffer)=0
 

Private Attributes

size_t size_
 
std::set< IBlock * > initBlocks_
 

Constructor & Destructor Documentation

◆ ReducePackInfo()

walberla::communication::ReducePackInfo::ReducePackInfo ( )
inline

◆ ~ReducePackInfo()

virtual walberla::communication::ReducePackInfo::~ReducePackInfo ( )
virtualdefault

Member Function Documentation

◆ communicateLocal()

void walberla::communication::ReducePackInfo::communicateLocal ( const IBlock sender,
IBlock receiver,
stencil::Direction  dir 
)
inline

◆ getSize()

size_t walberla::communication::ReducePackInfo::getSize ( ) const
inline

◆ initData()

virtual size_t walberla::communication::ReducePackInfo::initData ( IBlock receiver,
stencil::Direction  dir 
)
protectedpure virtual

◆ packData()

virtual void walberla::communication::ReducePackInfo::packData ( const IBlock sender,
stencil::Direction  dir,
mpi::SendBuffer outBuffer 
)
pure virtual

◆ reset()

void walberla::communication::ReducePackInfo::reset ( )
inline

◆ safeCommunicateLocal()

virtual void walberla::communication::ReducePackInfo::safeCommunicateLocal ( const IBlock sender,
IBlock receiver,
stencil::Direction  dir 
)
protectedpure virtual

◆ safeUnpackData()

virtual void walberla::communication::ReducePackInfo::safeUnpackData ( IBlock receiver,
stencil::Direction  dir,
mpi::RecvBuffer buffer 
)
protectedpure virtual

◆ unpackData()

void walberla::communication::ReducePackInfo::unpackData ( IBlock receiver,
stencil::Direction  dir,
mpi::RecvBuffer buffer 
)
inline

Member Data Documentation

◆ initBlocks_

std::set<IBlock*> walberla::communication::ReducePackInfo::initBlocks_
private

◆ size_

size_t walberla::communication::ReducePackInfo::size_
private

The documentation for this class was generated from the following file: