OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | List of all members
olb::ConcreteBlockCommunicator< BLOCK >::SendTask Class Reference

Wrapper for a non-blocking block propagation send request. More...

#include <blockCommunicator.hh>

+ Collaboration diagram for olb::ConcreteBlockCommunicator< BLOCK >::SendTask:

Public Member Functions

 SendTask (MPI_Comm comm, int tag, int rank, const std::vector< std::type_index > &fields, const std::vector< CellID > &cells, BLOCK &block)
 
void send ()
 
void wait ()
 

Detailed Description

template<typename BLOCK>
class olb::ConcreteBlockCommunicator< BLOCK >::SendTask

Wrapper for a non-blocking block propagation send request.

Definition at line 43 of file blockCommunicator.hh.

Constructor & Destructor Documentation

◆ SendTask()

template<typename BLOCK >
olb::ConcreteBlockCommunicator< BLOCK >::SendTask::SendTask ( MPI_Comm comm,
int tag,
int rank,
const std::vector< std::type_index > & fields,
const std::vector< CellID > & cells,
BLOCK & block )
inline

Definition at line 53 of file blockCommunicator.hh.

56 :
57 _cells(cells),
58 _source(block, fields),
59 _buffer(new std::uint8_t[_source.size(_cells)] { }),
60 _request(_buffer.get(), _source.size(_cells),
61 rank, tag, comm)
62 { }
std::size_t size(ConstSpan< CellID > indices) const override
Get serialized size for data at locations indices

Member Function Documentation

◆ send()

template<typename BLOCK >
void olb::ConcreteBlockCommunicator< BLOCK >::SendTask::send ( )
inline

Definition at line 64 of file blockCommunicator.hh.

65 {
66 _source.serialize(_cells, _buffer.get());
67 _request.start();
68 }
std::size_t serialize(ConstSpan< CellID > indices, std::uint8_t *buffer) const override
Serialize data at locations indices to buffer

References olb::MultiConcreteCommunicatable< COMMUNICATEE >::serialize(), and olb::MpiRequest::start().

+ Here is the call graph for this function:

◆ wait()

template<typename BLOCK >
void olb::ConcreteBlockCommunicator< BLOCK >::SendTask::wait ( )
inline

Definition at line 70 of file blockCommunicator.hh.

71 {
72 _request.wait();
73 }

References olb::MpiRequest::wait().

+ Here is the call graph for this function:

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