Dune::CommDataHandleIF< DataHandleImp, DataTypeImp > Class Template Reference
[CollectiveCommunication]

#include <datahandleif.hh>

List of all members.


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 it's interface. Therefore usable data handle classes need to be derived from this class.

Template parameters:

  • DataHandleImp implementation of the users data handle
  • DataTypeImp type of data that are going to be communicated which is exported as DataType (for example double)

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)

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:
dim valid dimension (i.e. the grids dimension)
codim valid codimension of the entity set for which data should be communicated

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:
dim valid dimension (i.e. the grids dimension)
codim valid codimension of the entity set for which data should be communicated

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:
e entity for which the size should be dertermined

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:
buff message buffer provided by the grid
e entity for which date should be packed to buffer

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:
buff message buffer provided by the grid
e entity for which date should be unpacked from buffer
n number of data written to buffer for this entity before


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

Generated on 6 Nov 2008 with Doxygen (ver 1.5.6) [logfile].