dune-grid  2.2.0
Public Types | Public Member Functions | Protected Member Functions
Dune::CommDataHandleIF< DataHandleImp, DataTypeImp > Class Template Reference

CommDataHandleIF describes the features of a data handle for communication in parallel runs using the Grid::communicate methods. Here the Barton-Nackman trick is used to interprete data handle objects as its interface. Therefore usable data handle classes need to be derived from this class. More...

#include <dune/grid/common/datahandleif.hh>

Inheritance diagram for Dune::CommDataHandleIF< DataHandleImp, DataTypeImp >:
Inheritance graph

List of all members.

Public Types

typedef DataTypeImp DataType
 data type of data to communicate

Public Member Functions

bool contains (int dim, int codim) const
 returns true if data for given valid codim should be communicated
bool fixedsize (int dim, int codim) const
 returns true if size of data per entity of given dim and codim is a constant
template<class EntityType >
size_t size (const EntityType &e) const
 how many objects of type DataType have to be sent for a given entity
template<class MessageBufferImp , class EntityType >
void gather (MessageBufferImp &buff, const EntityType &e) const
 pack data from user to message buffer
template<class MessageBufferImp , class EntityType >
void scatter (MessageBufferImp &buff, const EntityType &e, size_t n)

Protected Member Functions

 CommDataHandleIF ()

Detailed Description

template<class DataHandleImp, class DataTypeImp>
class Dune::CommDataHandleIF< DataHandleImp, DataTypeImp >

CommDataHandleIF describes the features of a data handle for communication in parallel runs using the Grid::communicate methods. Here the Barton-Nackman trick is used to interprete data handle objects as its interface. Therefore usable data handle classes need to be derived from this class.

Template Parameters:
DataHandleImpimplementation of the users data handle
DataTypeImptype of data that are going to be communicated which is exported as DataType (for example double)

Member Typedef Documentation

template<class DataHandleImp, class DataTypeImp>
typedef DataTypeImp Dune::CommDataHandleIF< DataHandleImp, DataTypeImp >::DataType

data type of data to communicate


Constructor & Destructor Documentation

template<class DataHandleImp, class DataTypeImp>
Dune::CommDataHandleIF< DataHandleImp, DataTypeImp >::CommDataHandleIF ( )
inlineprotected

Member Function Documentation

template<class DataHandleImp, class DataTypeImp>
bool Dune::CommDataHandleIF< DataHandleImp, DataTypeImp >::contains ( int  dim,
int  codim 
) const
inline

returns true if data for given valid codim should be communicated

Parameters:
dimvalid dimension (i.e. the grids dimension)
codimvalid codimension of the entity set for which data should be communicated

Reimplemented in Dune::GridPtr< GridType >::DataHandle, and Dune::GeoGrid::CommDataHandle< Grid, WrappedHandle >.

Referenced by Dune::CommDataHandleIF< DataHandle, double >::contains().

template<class DataHandleImp, class DataTypeImp>
bool Dune::CommDataHandleIF< DataHandleImp, DataTypeImp >::fixedsize ( int  dim,
int  codim 
) const
inline

returns true if size of data per entity of given dim and codim is a constant

Parameters:
dimvalid dimension (i.e. the grids dimension)
codimvalid codimension of the entity set for which data should be communicated

Reimplemented in Dune::GridPtr< GridType >::DataHandle, and Dune::GeoGrid::CommDataHandle< Grid, WrappedHandle >.

Referenced by Dune::CommDataHandleIF< DataHandle, double >::fixedsize().

template<class DataHandleImp, class DataTypeImp>
template<class MessageBufferImp , class EntityType >
void Dune::CommDataHandleIF< DataHandleImp, DataTypeImp >::gather ( MessageBufferImp &  buff,
const EntityType &  e 
) const
inline

pack data from user to message buffer

Parameters:
buffmessage buffer provided by the grid
eentity for which date should be packed to buffer

Reimplemented in Dune::GridPtr< GridType >::DataHandle.

Referenced by Dune::CommDataHandleIF< DataHandle, double >::gather().

template<class DataHandleImp, class DataTypeImp>
template<class MessageBufferImp , class EntityType >
void Dune::CommDataHandleIF< DataHandleImp, DataTypeImp >::scatter ( MessageBufferImp &  buff,
const EntityType &  e,
size_t  n 
)
inline

unpack data from message buffer to user n is the number of objects sent by the sender

Parameters:
buffmessage buffer provided by the grid
eentity for which date should be unpacked from buffer
nnumber of data written to buffer for this entity before

Reimplemented in Dune::GridPtr< GridType >::DataHandle.

Referenced by Dune::CommDataHandleIF< DataHandle, double >::scatter().

template<class DataHandleImp, class DataTypeImp>
template<class EntityType >
size_t Dune::CommDataHandleIF< DataHandleImp, DataTypeImp >::size ( const EntityType &  e) const
inline

how many objects of type DataType have to be sent for a given entity

Note:
Only the sender side needs to know this size.
Parameters:
eentity for which the size should be dertermined

Reimplemented in Dune::GridPtr< GridType >::DataHandle.

Referenced by Dune::CommDataHandleIF< DataHandle, double >::size().


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