|
| PdfFieldSyncPackInfo (const BlockDataID &fieldId) |
|
| PackInfo (const BlockDataID &fieldId) |
|
| ~PackInfo () override=default |
|
bool | constantDataExchange () const override |
| 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. More...
|
|
bool | threadsafeReceiving () const override |
| Must return false if calling unpackData and/or communicateLocal is not thread-safe. More...
|
|
void | unpackDataEqualLevel (Block *receiver, stencil::Direction dir, mpi::RecvBuffer &buffer) override |
| If NOT thread-safe, threadsafeReceiving must return false! More...
|
|
void | communicateLocalEqualLevel (const Block *sender, Block *receiver, stencil::Direction dir) override |
| If NOT thread-safe, threadsafeReceiving must return false! More...
|
|
void | unpackDataCoarseToFine (Block *fineReceiver, const BlockID &coarseSender, stencil::Direction dir, mpi::RecvBuffer &buffer) override |
|
void | communicateLocalCoarseToFine (const Block *coarseSender, Block *fineReceiver, stencil::Direction dir) override |
|
void | unpackDataFineToCoarse (Block *coarseReceiver, const BlockID &fineSender, stencil::Direction dir, mpi::RecvBuffer &buffer) override |
|
void | communicateLocalFineToCoarse (const Block *fineSender, Block *coarseReceiver, stencil::Direction dir) override |
|
| 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. More...
|
|
virtual bool | threadsafeReceiving () const =0 |
| Must return false if calling unpackData and/or communicateLocal is not thread-safe. More...
|
|
void | packDataEqualLevel (const Block *sender, stencil::Direction dir, mpi::SendBuffer &buffer) const |
| Must be thread-safe! Calls packDataImpl. More...
|
|
void | packDataCoarseToFine (const Block *coarseSender, const BlockID &fineReceiver, stencil::Direction dir, mpi::SendBuffer &buffer) const |
|
void | packDataFineToCoarse (const Block *fineSender, const BlockID &coarseReceiver, stencil::Direction dir, mpi::SendBuffer &buffer) const |
|
void | clearBufferSizeCheckMap () |
|
|
void | packDataEqualLevelImpl (const Block *sender, stencil::Direction dir, mpi::SendBuffer &buffer) const override |
| Must be thread-safe! More...
|
|
void | packDataCoarseToFineImpl (const Block *coarseSender, const BlockID &fineReceiver, stencil::Direction dir, mpi::SendBuffer &buffer) const override |
|
void | packDataFineToCoarseImpl (const Block *fineSender, const BlockID &coarseReceiver, stencil::Direction dir, mpi::SendBuffer &buffer) const override |
|
static CellInterval | equalLevelPackInterval (stencil::Direction dir, const CellInterval &cellBB, const uint_t numberOfLayers) |
|
static CellInterval | equalLevelUnpackInterval (stencil::Direction dir, const CellInterval &cellBB, const uint_t numberOfLayers) |
|
static Vector3< cell_idx_t > | getNeighborShift (const BlockID &smallBlock, stencil::Direction dir) |
|
static CellInterval | coarseToFinePackInterval (stencil::Direction dir, const CellInterval &cellBB, const BlockID &smallBlock) |
|
static CellInterval | coarseToFineUnpackInterval (stencil::Direction dir, const CellInterval &cellBB, const BlockID &smallBlock) |
|
static CellInterval | fineToCoarsePackInterval (stencil::Direction dir, const CellInterval &cellBB) |
|
static CellInterval | fineToCoarseUnpackInterval (stencil::Direction dir, const CellInterval &cellBB, const BlockID &smallBlock) |
|
static bool | isFaceDirection (stencil::Direction dir) |
|
static bool | isEdgeDirection (stencil::Direction dir) |
|
static bool | isCornerDirection (stencil::Direction dir) |
|
static bool | blocksConnectedByFaces (const Block *block, const BlockID &neighbor) |
|
static bool | blocksConnectedByEdges (const Block *block, const BlockID &neighbor) |
|
static bool | divisibleByTwo (const CellInterval &cellBB) |
|
static bool | coarserNeighborExists (const Block *block, stencil::Direction dir) |
|
const BlockDataID | fieldId_ |
|
std::map< const Block *, std::map< stencil::Direction, std::map< uint_t, size_t > > > | bufferSize_ |
|