Loading...
Searching...
No Matches
Dune::Point2PointCommunicator< MsgBuffer > Class Template Reference

Point-2-Point communicator for exchange messages between processes. More...

`#include <p2pcommunicator.hh>`

Inheritance diagram for Dune::Point2PointCommunicator< MsgBuffer >:

## Classes

class | DataHandleInterface

## Public Types

typedef MPIHelper::MPICommunicator | MPICommunicator
| type of MPI communicator, either MPI_Comm or NoComm as defined in MPIHelper
typedef MsgBuffer | MessageBufferType
| type of message buffer used

## Public Member Functions

| Point2PointCommunicator (const MPICommunicator &mpiComm=MPIHelper::getCommunicator())
| constructor taking mpi communicator
| Point2PointCommunicator (const BaseType &comm)
| constructor taking collective communication
void | insertRequest (const std::set< int > &sendLinks, const std::set< int > &recvLinks)
| insert communication request with a set os ranks to send to and a set of ranks to receive from
int | sendLinks () const
| return number of processes we will send data to
int | recvLinks () const
| return number of processes we will receive data from
const vector_t & | recvBufferSizes () const
| return vector containing possible recv buffer sizes
int | sendLink (const int rank) const
| return send link number for a given send rank number
int | recvLink (const int rank) const
| return recv link number for a given recv rank number
const std::vector< int > & | sendDest () const
| return vector containing all process numbers we will send to
const std::vector< int > & | recvSource () const
| return vector containing all process numbers we will receive from
void | removeLinkage ()
| remove stored linkage
virtual std::vector< MessageBufferType > | exchange (const std::vector< MessageBufferType > &) const
| exchange message buffers with peers defined by inserted linkage
virtual void | exchange (DataHandleInterface &) const
| exchange data with peers, handle defines pack and unpack of data
virtual void | exchangeCached (DataHandleInterface &) const
| exchange data with peers, handle defines pack and unpack of data, if receive buffers are known from previous run and have not changed communication could be faster

## Protected Types

using | BaseType = Dune::Communication<MPICommunicator>
typedef Point2PointCommunicator< MessageBufferType > | ThisType
typedef std::map< int, int > | linkage_t
typedef std::vector< int > | vector_t

## Protected Member Functions

void | computeDestinations (const linkage_t &linkage, vector_t &dest)
int | getMessageTag (const unsigned int increment) const
int | getMessageTag () const

## Protected Attributes

linkage_t | sendLinkage_
linkage_t | recvLinkage_
vector_t | sendDest_
vector_t | recvSource_
vector_t | _recvBufferSizes
bool | _recvBufferSizesComputed

## Static Protected Attributes

static const int | messagetag = 234

## Detailed Description

template<class MsgBuffer>
class Dune::Point2PointCommunicator< MsgBuffer >

Point-2-Point communicator for exchange messages between processes.

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

- opm/grid/common/p2pcommunicator.hh
- opm/grid/common/p2pcommunicator_impl.hh