waLBerla 7.3
Loading...
Searching...
No Matches
walberla::lbm::refinement::TimeStepPdfPackInfo Class Referenceabstract

#include <TimeStepPdfPackInfo.h>

Inheritance diagram for walberla::lbm::refinement::TimeStepPdfPackInfo:

Public Member Functions

virtual bool optimizedEqualLevelCommunication () const =0
virtual void optimizeEqualLevelCommunication (const bool value=true)=0
virtual bool optimizedForLinearExplosion () const =0
virtual void optimizeForLinearExplosion (const bool value=true)=0
 NonUniformPackInfo ()=default
virtual ~NonUniformPackInfo ()=default
virtual bool constantDataExchange () const =0
 Should return true if the amount of data that is packed for a given block in direction "dir" is guaranteed to remain constant over time.
virtual bool threadsafeReceiving () const =0
 Must return false if calling unpackData*() and/or communicateLocal*() methods is not thread-safe.
void packDataEqualLevel (const Block *sender, stencil::Direction dir, mpi::SendBuffer &buffer) const
 Must be thread-safe! Calls packDataEqualLevelImpl.
virtual void unpackDataEqualLevel (Block *receiver, stencil::Direction dir, mpi::RecvBuffer &buffer)=0
 If NOT thread-safe, threadsafeReceiving must return false!
virtual void communicateLocalEqualLevel (const Block *sender, Block *receiver, stencil::Direction dir)=0
 If NOT thread-safe, threadsafeReceiving must return false!
void packDataCoarseToFine (const Block *coarseSender, const BlockID &fineReceiver, stencil::Direction dir, mpi::SendBuffer &buffer) const
virtual void unpackDataCoarseToFine (Block *fineReceiver, const BlockID &coarseSender, stencil::Direction dir, mpi::RecvBuffer &buffer)=0
virtual void communicateLocalCoarseToFine (const Block *coarseSender, Block *fineReceiver, stencil::Direction dir)=0
void packDataFineToCoarse (const Block *fineSender, const BlockID &coarseReceiver, stencil::Direction dir, mpi::SendBuffer &buffer) const
virtual void unpackDataFineToCoarse (Block *coarseReceiver, const BlockID &fineSender, stencil::Direction dir, mpi::RecvBuffer &buffer)=0
virtual void communicateLocalFineToCoarse (const Block *fineSender, Block *coarseReceiver, stencil::Direction dir)=0
void clearBufferSizeCheckMap ()

Additional Inherited Members

virtual void packDataEqualLevelImpl (const Block *sender, stencil::Direction dir, mpi::SendBuffer &buffer) const =0
 Must be thread-safe!
virtual void packDataCoarseToFineImpl (const Block *coarseSender, const BlockID &fineReceiver, stencil::Direction dir, mpi::SendBuffer &buffer) const =0
virtual void packDataFineToCoarseImpl (const Block *fineSender, const BlockID &coarseReceiver, stencil::Direction dir, mpi::SendBuffer &buffer) const =0
std::map< const Block *, std::map< stencil::Direction, std::map< uint_t, size_t > > > bufferSize_

Member Function Documentation

◆ optimizedEqualLevelCommunication()

virtual bool walberla::lbm::refinement::TimeStepPdfPackInfo::optimizedEqualLevelCommunication ( ) const
pure virtual

◆ optimizedForLinearExplosion()

virtual bool walberla::lbm::refinement::TimeStepPdfPackInfo::optimizedForLinearExplosion ( ) const
pure virtual

◆ optimizeEqualLevelCommunication()

virtual void walberla::lbm::refinement::TimeStepPdfPackInfo::optimizeEqualLevelCommunication ( const bool value = true)
pure virtual

◆ optimizeForLinearExplosion()

virtual void walberla::lbm::refinement::TimeStepPdfPackInfo::optimizeForLinearExplosion ( const bool value = true)
pure virtual

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