waLBerla 7.2
Loading...
Searching...
No Matches
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()

Member Data Documentation

◆ blockForest_

◆ 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_


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