walberla::field::communication::StencilRestrictedMPIDatatypeInfo< GhostLayerField_T, Stencil_T > Class Template Reference

#include <StencilRestrictedMPIDatatypeInfo.h>

+ Inheritance diagram for walberla::field::communication::StencilRestrictedMPIDatatypeInfo< GhostLayerField_T, Stencil_T >:

Public Member Functions

 StencilRestrictedMPIDatatypeInfo (BlockDataID fieldID)
 
 ~StencilRestrictedMPIDatatypeInfo () 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 ~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)
 

Static Private Member Functions

static std::set< cell_idx_tgetOptimizedCommunicationIndices (const stencil::Direction dir)
 

Private Attributes

BlockDataID fieldID_
 

Constructor & Destructor Documentation

◆ StencilRestrictedMPIDatatypeInfo()

template<typename GhostLayerField_T , typename Stencil_T >
walberla::field::communication::StencilRestrictedMPIDatatypeInfo< GhostLayerField_T, Stencil_T >::StencilRestrictedMPIDatatypeInfo ( BlockDataID  fieldID)
inline

◆ ~StencilRestrictedMPIDatatypeInfo()

template<typename GhostLayerField_T , typename Stencil_T >
walberla::field::communication::StencilRestrictedMPIDatatypeInfo< GhostLayerField_T, Stencil_T >::~StencilRestrictedMPIDatatypeInfo ( )
overridedefault

Member Function Documentation

◆ getField()

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

◆ getOptimizedCommunicationIndices()

template<typename GhostLayerField_T , typename Stencil_T >
static std::set< cell_idx_t > walberla::field::communication::StencilRestrictedMPIDatatypeInfo< GhostLayerField_T, Stencil_T >::getOptimizedCommunicationIndices ( const stencil::Direction  dir)
inlinestaticprivate

◆ getRecvDatatype()

template<typename GhostLayerField_T , typename Stencil_T >
shared_ptr<mpi::Datatype> walberla::field::communication::StencilRestrictedMPIDatatypeInfo< GhostLayerField_T, Stencil_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 , typename Stencil_T >
void* walberla::field::communication::StencilRestrictedMPIDatatypeInfo< GhostLayerField_T, Stencil_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 , typename Stencil_T >
shared_ptr<mpi::Datatype> walberla::field::communication::StencilRestrictedMPIDatatypeInfo< GhostLayerField_T, Stencil_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 , typename Stencil_T >
void* walberla::field::communication::StencilRestrictedMPIDatatypeInfo< GhostLayerField_T, Stencil_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.

Member Data Documentation

◆ fieldID_

template<typename GhostLayerField_T , typename Stencil_T >
BlockDataID walberla::field::communication::StencilRestrictedMPIDatatypeInfo< GhostLayerField_T, Stencil_T >::fieldID_
private

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