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)
 
virtual ~UniformMPIDatatypeInfo ()
 
virtual shared_ptr< mpi::DatatypegetSendDatatype (IBlock *block, const stencil::Direction dir)
 Return the MPI data type that should be used for sending to neighbor in specified direction. More...
 
virtual shared_ptr< mpi::DatatypegetRecvDatatype (IBlock *block, const stencil::Direction dir)
 Return the MPI data type that should be used for receiving from neighbor in specified direction. More...
 
virtual void * getSendPointer (IBlock *block, const stencil::Direction)
 Return pointer to data that should be send to neighbor in specified direction. More...
 
virtual void * getRecvPointer (IBlock *block, const stencil::Direction)
 Return pointer to memory where received data is written to. More...
 
- Public Member Functions inherited from walberla::communication::UniformMPIDatatypeInfo
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

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

Member Function Documentation

template<typename GhostLayerField_T >
GhostLayerField_T* walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T >::getField ( IBlock *  block)
inlineprivate
template<typename GhostLayerField_T >
virtual shared_ptr<mpi::Datatype> walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T >::getRecvDatatype ( IBlock *  block,
const stencil::Direction  dir 
)
inlinevirtual

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

Implements walberla::communication::UniformMPIDatatypeInfo.

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

Return pointer to memory where received data is written to.

Implements walberla::communication::UniformMPIDatatypeInfo.

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

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

Implements walberla::communication::UniformMPIDatatypeInfo.

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

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

Implements walberla::communication::UniformMPIDatatypeInfo.

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

Member Data Documentation

template<typename GhostLayerField_T >
BlockDataID walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T >::blockDataID_
private
template<typename GhostLayerField_T >
bool walberla::field::communication::UniformMPIDatatypeInfo< GhostLayerField_T >::communicateAllGhostLayers_
private
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: