OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::ConcreteBlockCommunicator< ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > >::SendTask Class Reference

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

#include <blockLattice.hh>

+ Collaboration diagram for olb::ConcreteBlockCommunicator< ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > >::SendTask:

Public Member Functions

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

Detailed Description

template<typename T, typename DESCRIPTOR, Platform PLATFORM>
class olb::ConcreteBlockCommunicator< ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > >::SendTask

Wrapper for a non-blocking block propagation send request.

Definition at line 646 of file blockLattice.hh.

Constructor & Destructor Documentation

◆ SendTask()

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

Definition at line 656 of file blockLattice.hh.

659 :
660 _cells(cells),
661 _source(block, fields),
662 _buffer(new std::uint8_t[_source.size(_cells)] { }),
663 _request(_buffer.get(), _source.size(_cells),
664 rank, tag, comm)
665 { }

Member Function Documentation

◆ send()

template<typename T , typename DESCRIPTOR , Platform PLATFORM>
void olb::ConcreteBlockCommunicator< ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > >::SendTask::send ( )
inline

Definition at line 667 of file blockLattice.hh.

668 {
669 _source.serialize(_cells, _buffer.get());
670 _request.start();
671 }

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

+ Here is the call graph for this function:

◆ wait()

template<typename T , typename DESCRIPTOR , Platform PLATFORM>
void olb::ConcreteBlockCommunicator< ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > >::SendTask::wait ( )
inline

Definition at line 673 of file blockLattice.hh.

674 {
675 _request.wait();
676 }

References olb::MpiRequest::wait().

+ Here is the call graph for this function:

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