walberla::blockforest::communication::UniformDirectScheme< Stencil_T > Class Template Reference

Detailed Description

template<typename Stencil_T>
class walberla::blockforest::communication::UniformDirectScheme< Stencil_T >

Communication for a single field using MPI datatypes ( no intermediate buffers )

#include <UniformDirectScheme.h>

Classes

struct  CommInfo
 

Public Types

using Stencil = Stencil_T
 
using UniformMPIDatatypeInfo = walberla::communication::UniformMPIDatatypeInfo
 
using CommunicationItemInfo = walberla::communication::UniformMPIDatatypeInfo
 

Public Member Functions

Construction & Destruction
 UniformDirectScheme (const weak_ptr< StructuredBlockForest > &bf, const shared_ptr< UniformMPIDatatypeInfo > &dataInfo=shared_ptr< UniformMPIDatatypeInfo >(), const int tag=778)
 
 UniformDirectScheme (const weak_ptr< StructuredBlockForest > &bf, const Set< SUID > &requiredBlockSelectors, const Set< SUID > &incompatibleBlockSelectors, const shared_ptr< UniformMPIDatatypeInfo > &dataInfo=shared_ptr< UniformMPIDatatypeInfo >(), const int tag=778)
 
Registration of data to communicate
void addDataToCommunicate (const shared_ptr< UniformMPIDatatypeInfo > &dataInfo)
 
Synchronous Communication
void operator() ()
 
void communicate ()
 

Asynchronous Communication

weak_ptr< StructuredBlockForestblockForest_
 
bool setupRequired_
 
bool communicationRunning_
 
Set< SUID > requiredBlockSelectors_
 
Set< SUID > incompatibleBlockSelectors_
 
std::vector< CommInfosendInfos_
 
std::vector< CommInforecvInfos_
 
std::vector< MPI_Request > mpiRequests_
 
std::vector< shared_ptr< mpi::Datatype > > mpiDatatypes_
 
std::vector< shared_ptr< UniformMPIDatatypeInfo > > dataInfos_
 
int tag_
 
void startCommunication ()
 
void wait ()
 
std::function< void()> getStartCommunicateFunctor ()
 
std::function< void()> getWaitFunctor ()
 
void setup ()
 

Member Typedef Documentation

◆ CommunicationItemInfo

◆ Stencil

◆ UniformMPIDatatypeInfo

Constructor & Destructor Documentation

◆ UniformDirectScheme() [1/2]

template<typename Stencil_T >
walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::UniformDirectScheme ( const weak_ptr< StructuredBlockForest > &  bf,
const shared_ptr< UniformMPIDatatypeInfo > &  dataInfo = shared_ptr<UniformMPIDatatypeInfo>(),
const int  tag = 778 
)
inlineexplicit

◆ UniformDirectScheme() [2/2]

template<typename Stencil_T >
walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::UniformDirectScheme ( const weak_ptr< StructuredBlockForest > &  bf,
const Set< SUID > &  requiredBlockSelectors,
const Set< SUID > &  incompatibleBlockSelectors,
const shared_ptr< UniformMPIDatatypeInfo > &  dataInfo = shared_ptr<UniformMPIDatatypeInfo>(),
const int  tag = 778 
)
inline

Member Function Documentation

◆ addDataToCommunicate()

template<typename Stencil >
void walberla::blockforest::communication::UniformDirectScheme< Stencil >::addDataToCommunicate ( const shared_ptr< UniformMPIDatatypeInfo > &  dataInfo)

◆ communicate()

template<typename Stencil >
void walberla::blockforest::communication::UniformDirectScheme< Stencil >::communicate
inline

◆ getStartCommunicateFunctor()

template<typename Stencil_T >
std::function<void()> walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::getStartCommunicateFunctor ( )
inline

◆ getWaitFunctor()

template<typename Stencil_T >
std::function<void()> walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::getWaitFunctor ( )
inline

◆ operator()()

template<typename Stencil_T >
void walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::operator() ( )
inline

◆ setup()

template<typename Stencil >
void walberla::blockforest::communication::UniformDirectScheme< Stencil >::setup
protected

◆ startCommunication()

template<typename Stencil >
void walberla::blockforest::communication::UniformDirectScheme< Stencil >::startCommunication

◆ wait()

template<typename Stencil >
void walberla::blockforest::communication::UniformDirectScheme< Stencil >::wait

Member Data Documentation

◆ blockForest_

template<typename Stencil_T >
weak_ptr<StructuredBlockForest> walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::blockForest_
protected

◆ communicationRunning_

template<typename Stencil_T >
bool walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::communicationRunning_
protected

◆ dataInfos_

template<typename Stencil_T >
std::vector< shared_ptr<UniformMPIDatatypeInfo> > walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::dataInfos_
protected

◆ incompatibleBlockSelectors_

template<typename Stencil_T >
Set<SUID> walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::incompatibleBlockSelectors_
protected

◆ mpiDatatypes_

template<typename Stencil_T >
std::vector< shared_ptr<mpi::Datatype> > walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::mpiDatatypes_
protected

◆ mpiRequests_

template<typename Stencil_T >
std::vector< MPI_Request > walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::mpiRequests_
protected

◆ recvInfos_

template<typename Stencil_T >
std::vector<CommInfo> walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::recvInfos_
protected

◆ requiredBlockSelectors_

template<typename Stencil_T >
Set<SUID> walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::requiredBlockSelectors_
protected

◆ sendInfos_

template<typename Stencil_T >
std::vector<CommInfo> walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::sendInfos_
protected

◆ setupRequired_

template<typename Stencil_T >
bool walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::setupRequired_
protected

◆ tag_

template<typename Stencil_T >
int walberla::blockforest::communication::UniformDirectScheme< Stencil_T >::tag_
protected

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