OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | List of all members
olb::ConcreteBlockCommunicator< ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > >::HomogeneousCopyTask Class Reference

Wrapper for a local homogeneous CPU block communication request. More...

#include <blockLattice.hh>

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

Public Member Functions

 HomogeneousCopyTask (const std::vector< std::type_index > &fields, const std::vector< CellID > &targetCells, ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > &target, const std::vector< CellID > &sourceCells, ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > &source)
 
void copy () override
 
void wait () override
 
- Public Member Functions inherited from olb::ConcreteBlockCommunicator< ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > >::CopyTask
virtual ~CopyTask ()
 

Detailed Description

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

Wrapper for a local homogeneous CPU block communication request.

Definition at line 703 of file blockLattice.hh.

Constructor & Destructor Documentation

◆ HomogeneousCopyTask()

template<typename T , typename DESCRIPTOR , Platform PLATFORM>
olb::ConcreteBlockCommunicator< ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > >::HomogeneousCopyTask::HomogeneousCopyTask ( const std::vector< std::type_index > & fields,
const std::vector< CellID > & targetCells,
ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > & target,
const std::vector< CellID > & sourceCells,
ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > & source )
inline

Definition at line 715 of file blockLattice.hh.

718 :
719 _targetCells(targetCells),
720 _sourceCells(sourceCells),
721 _target(target, fields),
722 _source(source, fields),
723 _buffer(new std::uint8_t[_source.size(_sourceCells)] { })
724 {
725 OLB_ASSERT(_sourceCells.size() == _targetCells.size(),
726 "Source cell count must match target cell count");
727 }
#define OLB_ASSERT(COND, MESSAGE)
Definition olbDebug.h:45

Member Function Documentation

◆ copy()

template<typename T , typename DESCRIPTOR , Platform PLATFORM>
void olb::ConcreteBlockCommunicator< ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > >::HomogeneousCopyTask::copy ( )
inlineoverridevirtual

Implements olb::ConcreteBlockCommunicator< ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > >::CopyTask.

Definition at line 729 of file blockLattice.hh.

730 {
731 _source.serialize(_sourceCells, _buffer.get());
732 _target.deserialize(_targetCells, _buffer.get());
733 };

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

+ Here is the call graph for this function:

◆ wait()

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

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