|
| | 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.
|
| |
| bool | threadsafeReceiving () const override |
| | Must return false if calling unpackData*() and/or communicateLocal*() methods is not thread-safe.
|
| |
| void | unpackDataEqualLevel (Block *receiver, stencil::Direction dir, mpi::RecvBuffer &buffer) override |
| | If NOT thread-safe, threadsafeReceiving must return false!
|
| |
| void | communicateLocalEqualLevel (const Block *sender, Block *receiver, stencil::Direction dir) override |
| | If NOT thread-safe, threadsafeReceiving must return false!
|
| |
| 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 |
| |
| void | packDataEqualLevel (const Block *sender, stencil::Direction dir, mpi::SendBuffer &buffer) const |
| | Must be thread-safe! Calls packDataEqualLevelImpl.
|
| |
| 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!
|
| |
| 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_ |
| |