walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T > Class Template Reference

#include <UniformMPIDatatypeInfo.h>

+ Inheritance diagram for walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T >:

Public Member Functions

 UniformMPIDatatypeInfo (BlockDataID blockDataID)
 
 UniformMPIDatatypeInfo (BlockDataID blockDataID, const uint_t numberOfGhostLayers)
 
 ~UniformMPIDatatypeInfo () override=default
 
shared_ptr< mpi::DatatypegetSendDatatype (IBlock *block, const stencil::Direction dir) override
 Return the MPI data type that should be used for sending to neighbor in specified direction. More...
 
shared_ptr< mpi::DatatypegetRecvDatatype (IBlock *block, const stencil::Direction dir) override
 Return the MPI data type that should be used for receiving from neighbor in specified direction. More...
 
void * getSendPointer (IBlock *block, const stencil::Direction) override
 Return pointer to data that should be send to neighbor in specified direction. More...
 
void * getRecvPointer (IBlock *block, const stencil::Direction) override
 Return pointer to memory where received data is written to. More...
 
- Public Member Functions inherited from walberla::communication::UniformMPIDatatypeInfo
 UniformMPIDatatypeInfo ()=default
 
virtual int getNumberOfItemsToCommunicate (IBlock *, const stencil::Direction)
 Return how many data items of the datatype should be communicated per block and direction Due to custom aggregated MPI datatypes this is usually 1. More...
 

Private Member Functions

GhostLayerField_T * getField (IBlock *block)
 
uint_t numberOfGhostLayersToCommunicate (IBlock *block)
 

Private Attributes

BlockDataID blockDataID_
 
bool communicateAllGhostLayers_
 
uint_t numberOfGhostLayers_
 

Constructor & Destructor Documentation

◆ UniformMPIDatatypeInfo() [1/2]

template<typename GhostLayerField_T >
walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T >::UniformMPIDatatypeInfo ( BlockDataID  blockDataID)
inline

◆ UniformMPIDatatypeInfo() [2/2]

template<typename GhostLayerField_T >
walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T >::UniformMPIDatatypeInfo ( BlockDataID  blockDataID,
const uint_t  numberOfGhostLayers 
)
inline

◆ ~UniformMPIDatatypeInfo()

template<typename GhostLayerField_T >
walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T >::~UniformMPIDatatypeInfo ( )
overridevirtualdefault

Member Function Documentation

◆ getField()

template<typename GhostLayerField_T >
GhostLayerField_T* walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T >::getField ( IBlock block)
inlineprivate

◆ getRecvDatatype()

template<typename GhostLayerField_T >
shared_ptr<mpi::Datatype> walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T >::getRecvDatatype ( IBlock block,
const stencil::Direction  dir 
)
inlineoverridevirtual

Return the MPI data type that should be used for receiving from neighbor in specified direction.

Implements walberla::communication::UniformMPIDatatypeInfo.

◆ getRecvPointer()

template<typename GhostLayerField_T >
void* walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T >::getRecvPointer ( IBlock block,
const stencil::Direction  dir 
)
inlineoverridevirtual

Return pointer to memory where received data is written to.

Implements walberla::communication::UniformMPIDatatypeInfo.

◆ getSendDatatype()

template<typename GhostLayerField_T >
shared_ptr<mpi::Datatype> walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T >::getSendDatatype ( IBlock block,
const stencil::Direction  dir 
)
inlineoverridevirtual

Return the MPI data type that should be used for sending to neighbor in specified direction.

Implements walberla::communication::UniformMPIDatatypeInfo.

◆ getSendPointer()

template<typename GhostLayerField_T >
void* walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T >::getSendPointer ( IBlock block,
const stencil::Direction  dir 
)
inlineoverridevirtual

Return pointer to data that should be send to neighbor in specified direction.

Implements walberla::communication::UniformMPIDatatypeInfo.

◆ numberOfGhostLayersToCommunicate()

template<typename GhostLayerField_T >
uint_t walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T >::numberOfGhostLayersToCommunicate ( IBlock block)
inlineprivate

Member Data Documentation

◆ blockDataID_

template<typename GhostLayerField_T >
BlockDataID walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T >::blockDataID_
private

◆ communicateAllGhostLayers_

template<typename GhostLayerField_T >
bool walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T >::communicateAllGhostLayers_
private

◆ numberOfGhostLayers_

template<typename GhostLayerField_T >
uint_t walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T >::numberOfGhostLayers_
private

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