Dune Core Modules (unstable)
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 interpret 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>
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 More... | |
bool | fixedSize (int dim, int codim) const |
returns true if size of data per entity of given dim and codim is a constant More... | |
template<class EntityType > | |
size_t | size (const EntityType &e) const |
how many objects of type DataType have to be sent for a given entity More... | |
template<class MessageBufferImp , class EntityType > | |
void | gather (MessageBufferImp &buff, const EntityType &e) const |
pack data from user to message buffer More... | |
template<class MessageBufferImp , class EntityType > | |
void | scatter (MessageBufferImp &buff, const EntityType &e, size_t n) |
unpack data from message buffer to user. More... | |
Detailed Description
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 interpret data handle objects as its 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)
Member Function Documentation
◆ contains()
|
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
◆ fixedSize()
|
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
This method calls 'fixedSize' of the derived class.
◆ gather()
|
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
References CHECK_AND_CALL_INTERFACE_IMPLEMENTATION, and Dune::CommDataHandleIF< DataHandleImp, DataTypeImp >::gather().
Referenced by Dune::CommDataHandleIF< DataHandleImp, DataTypeImp >::gather().
◆ scatter()
|
inline |
unpack data from message buffer to user.
- Parameters
-
buff message buffer provided by the grid. This is not const, because the buffer has an internal iterator that gets advanced when reading from the buffer. e entity for which date should be unpacked from buffer n number of data written to buffer for this entity before
References CHECK_AND_CALL_INTERFACE_IMPLEMENTATION, and Dune::CommDataHandleIF< DataHandleImp, DataTypeImp >::scatter().
Referenced by Dune::CommDataHandleIF< DataHandleImp, DataTypeImp >::scatter().
◆ size()
|
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 determined
The documentation for this class was generated from the following file:
- dune/grid/common/datahandleif.hh