Dune::CommDataHandleIF< DataHandleImp, DataTypeImp > Class Template Reference
[CollectiveCommunication]
#include <datahandleif.hh>
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 handleDataTypeImp
type of data that are going to be communicated which is exported asDataType
(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: