waLBerla 7.3
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< SUIDrequiredBlockSelectors_
Set< SUIDincompatibleBlockSelectors_
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: