OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | List of all members
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 583 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 593 of file blockLattice.hh.

596 :
597 _cells(cells),
598 _source(block, fields),
599 _buffer(new std::uint8_t[_source.size(_cells)] { }),
600 _request(_buffer.get(), _source.size(_cells),
601 rank, tag, comm)
602 { }

Member Function Documentation

◆ send()

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

Definition at line 604 of file blockLattice.hh.

605 {
606 _source.serialize(_cells, _buffer.get());
607 _request.start();
608 }

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 610 of file blockLattice.hh.

611 {
612 _request.wait();
613 }

References olb::MpiRequest::wait().

+ Here is the call graph for this function:

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