Loading...
Searching...
No Matches
Dune::GridGlue::CommDataHandle< DataHandleImp, DataTypeImp > Class Template Reference

describes the features of a data handle for communication in parallel runs using the GridGlue::communicate methods. More...

`#include <dune/grid-glue/adapter/gridgluecommunicate.hh>`

## Public Types

typedef DataTypeImp | DataType
| data type of data to communicate

## Public Member Functions

template<class RISType>
size_t | size (RISType &i) const
template<class MessageBufferImp, class EntityType, class RISType>
void | gather (MessageBufferImp &buff, const EntityType &e, const RISType &i) const
| pack data from user to message buffer
template<class MessageBufferImp, class EntityType, class RISType>
void | scatter (MessageBufferImp &buff, const EntityType &e, const RISType &i, size_t n)

## Protected Member Functions

| CommDataHandle ()

## Detailed Description

template<class DataHandleImp, class DataTypeImp>
class Dune::GridGlue::CommDataHandle< DataHandleImp, DataTypeImp >

describes the features of a data handle for communication in parallel runs using the GridGlue::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 Typedef Documentation

## DataType

template<class DataHandleImp, class DataTypeImp>

typedef DataTypeImp Dune::GridGlue::CommDataHandle< DataHandleImp, DataTypeImp >::DataType

data type of data to communicate

## Constructor & Destructor Documentation

## CommDataHandle()

template<class DataHandleImp, class DataTypeImp>

Dune::GridGlue::CommDataHandle< DataHandleImp, DataTypeImp >::CommDataHandle | ( |  | ) |

inline protected

## Member Function Documentation

## gather()

template<class DataHandleImp, class DataTypeImp>
template<class MessageBufferImp, class EntityType, class RISType>

void Dune::GridGlue::CommDataHandle< DataHandleImp, DataTypeImp >::gather | ( | MessageBufferImp & | buff,
|  | const EntityType & | e,
|  | const RISType & | i ) 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
  i | Intersection for which data should be packed to buffer

## scatter()

template<class DataHandleImp, class DataTypeImp>
template<class MessageBufferImp, class EntityType, class RISType>

void Dune::GridGlue::CommDataHandle< DataHandleImp, DataTypeImp >::scatter | ( | MessageBufferImp & | buff,
|  | const EntityType & | e,
|  | const RISType & | i,
|  | 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
  i | Intersection for which data is received
  n | number of data written to buffer for this entity before

## size()

template<class DataHandleImp, class DataTypeImp>
template<class RISType>

size_t Dune::GridGlue::CommDataHandle< DataHandleImp, DataTypeImp >::size | ( | RISType & | i | ) | const

inline

how many objects of type DataType have to be sent for a given intersection Note: Both sender and receiver side need to know this size.

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

- gridgluecommunicate.hh