![]() |
OpenLB 1.8.1
|
Configurable overlap communication neighborhood of a block. More...
#include <blockCommunicationNeighborhood.h>
Inheritance diagram for olb::BlockCommunicationNeighborhood< T, D >:
Collaboration diagram for olb::BlockCommunicationNeighborhood< T, D >:Public Member Functions | |
| BlockCommunicationNeighborhood (CuboidDecomposition< T, D > &cuboidDecomposition, LoadBalancer< T > &loadBalancer, int iC, int padding, MPI_Comm comm) | |
| template<typename FIELD > | |
| void | requestField () |
| Request field and provides local availability. | |
| void | requestCell (LatticeR< D > latticeR) |
| Request individual cell for communication. | |
| void | requestOverlap (int width) |
| Request all cells in overlap of size width for communication. | |
| void | requestOverlap (int width, BlockIndicatorF< T, D > &indicatorF) |
| Request all indicated cells in overlap of width for communication. | |
| void | clearRequestedCells () |
| Remove all requested cells. | |
| void | setFieldAvailability (std::type_index field, bool available) |
| Update local availability of previously requested field. | |
| template<typename BLOCK > | |
| void | setFieldsAvailability (int iC, BLOCK &block) |
| Update outbound availabilities for locally available neighbor block. | |
| void | maintain () |
| void | send (SuperCommunicationTagCoordinator< T > &) |
| void | receive (SuperCommunicationTagCoordinator< T > &) |
| void | wait () |
| template<typename F > | |
| void | forNeighbors (F f) const |
| Calls f(iC) for every neighboring cuboid ID iC. | |
| const std::vector< std::type_index > & | getFieldsCommonWith (int iC) const |
| const std::vector< CellID > & | getCellsOutboundTo (int iC) const |
| const std::vector< CellID > & | getCellsInboundFrom (int iC) const |
| const std::vector< CellID > & | getCellsRequestedFrom (int iC) const |
Configurable overlap communication neighborhood of a block.
Managed by SuperCommunicator
Definition at line 48 of file blockCommunicationNeighborhood.h.
| olb::BlockCommunicationNeighborhood< T, D >::BlockCommunicationNeighborhood | ( | CuboidDecomposition< T, D > & | cuboidDecomposition, |
| LoadBalancer< T > & | loadBalancer, | ||
| int | iC, | ||
| int | padding, | ||
| MPI_Comm | comm ) |
Definition at line 39 of file blockCommunicationNeighborhood.hh.
References olb::BlockCommunicationNeighborhood< T, D >::requestOverlap().
Here is the call graph for this function:| void olb::BlockCommunicationNeighborhood< T, D >::clearRequestedCells | ( | ) |
Remove all requested cells.
Definition at line 130 of file blockCommunicationNeighborhood.hh.
|
inline |
Calls f(iC) for every neighboring cuboid ID iC.
Definition at line 118 of file blockCommunicationNeighborhood.h.
Here is the caller graph for this function:| const std::vector< CellID > & olb::BlockCommunicationNeighborhood< T, D >::getCellsInboundFrom | ( | int | iC | ) | const |
Definition at line 268 of file blockCommunicationNeighborhood.hh.
Here is the caller graph for this function:| const std::vector< CellID > & olb::BlockCommunicationNeighborhood< T, D >::getCellsOutboundTo | ( | int | iC | ) | const |
Definition at line 261 of file blockCommunicationNeighborhood.hh.
Here is the caller graph for this function:| const std::vector< CellID > & olb::BlockCommunicationNeighborhood< T, D >::getCellsRequestedFrom | ( | int | iC | ) | const |
Definition at line 275 of file blockCommunicationNeighborhood.hh.
Here is the caller graph for this function:| const std::vector< std::type_index > & olb::BlockCommunicationNeighborhood< T, D >::getFieldsCommonWith | ( | int | iC | ) | const |
Definition at line 254 of file blockCommunicationNeighborhood.hh.
Here is the caller graph for this function:| void olb::BlockCommunicationNeighborhood< T, D >::maintain | ( | ) |
Definition at line 161 of file blockCommunicationNeighborhood.hh.
| void olb::BlockCommunicationNeighborhood< T, D >::receive | ( | SuperCommunicationTagCoordinator< T > & | coordinator | ) |
Definition at line 206 of file blockCommunicationNeighborhood.hh.
References olb::SuperCommunicationTagCoordinator< T >::get(), olb::singleton::mpi(), olb::singleton::MpiManager::probeReceiveSize(), and olb::singleton::MpiManager::receive().
Here is the call graph for this function:| void olb::BlockCommunicationNeighborhood< T, D >::requestCell | ( | LatticeR< D > | latticeR | ) |
Request individual cell for communication.
Definition at line 67 of file blockCommunicationNeighborhood.hh.
References olb::BlockStructureD< D >::isPadding().
Here is the call graph for this function:
|
inline |
Request field and provides local availability.
Definition at line 83 of file blockCommunicationNeighborhood.h.
References olb::cpu::sisd::Column< T >::resize().
Here is the call graph for this function:| void olb::BlockCommunicationNeighborhood< T, D >::requestOverlap | ( | int | width | ) |
Request all cells in overlap of size width for communication.
Definition at line 90 of file blockCommunicationNeighborhood.hh.
Here is the caller graph for this function:| void olb::BlockCommunicationNeighborhood< T, D >::requestOverlap | ( | int | width, |
| BlockIndicatorF< T, D > & | indicatorF ) |
Request all indicated cells in overlap of width for communication.
Definition at line 110 of file blockCommunicationNeighborhood.hh.
| void olb::BlockCommunicationNeighborhood< T, D >::send | ( | SuperCommunicationTagCoordinator< T > & | coordinator | ) |
Definition at line 190 of file blockCommunicationNeighborhood.hh.
References olb::SuperCommunicationTagCoordinator< T >::get().
Here is the call graph for this function:| void olb::BlockCommunicationNeighborhood< T, D >::setFieldAvailability | ( | std::type_index | field, |
| bool | available ) |
Update local availability of previously requested field.
Definition at line 138 of file blockCommunicationNeighborhood.hh.
| void olb::BlockCommunicationNeighborhood< T, D >::setFieldsAvailability | ( | int | iC, |
| BLOCK & | block ) |
Update outbound availabilities for locally available neighbor block.
Used for local non-MPI exchange of field availabilities
Definition at line 148 of file blockCommunicationNeighborhood.hh.
| void olb::BlockCommunicationNeighborhood< T, D >::wait | ( | ) |
Definition at line 242 of file blockCommunicationNeighborhood.hh.