MFEM  v4.2.0
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | List of all members
mfem::VarMessage< Tag > Struct Template Reference

Variable-length MPI message containing unspecific binary data. More...

#include <communication.hpp>

Inheritance diagram for mfem::VarMessage< Tag >:
[legend]
Collaboration diagram for mfem::VarMessage< Tag >:
[legend]

Public Member Functions

void Isend (int rank, MPI_Comm comm)
 Non-blocking send to processor 'rank'. Returns immediately. Completion (as tested by MPI_Wait/Test) does not mean the message was received – it may be on its way or just buffered locally. More...
 
void Issend (int rank, MPI_Comm comm)
 Non-blocking synchronous send to processor 'rank'. Returns immediately. Completion (MPI_Wait/Test) means that the message was received. More...
 
void Recv (int rank, int size, MPI_Comm comm)
 Post-probe receive from processor 'rank' of message size 'size'. More...
 
void RecvDrop (int rank, int size, MPI_Comm comm)
 Like Recv(), but throw away the message. More...
 
 VarMessage ()
 
void Clear ()
 Clear the message and associated request. More...
 
virtual ~VarMessage ()
 
 VarMessage (const VarMessage &other)
 

Static Public Member Functions

template<typename MapT >
static void IsendAll (MapT &rank_msg, MPI_Comm comm)
 Helper to send all messages in a rank-to-message map container. More...
 
template<typename MapT >
static void WaitAllSent (MapT &rank_msg)
 Helper to wait for all messages in a map container to be sent. More...
 
template<typename MapT >
static bool TestAllSent (MapT &rank_msg)
 Return true if all messages in the map container were sent, otherwise return false, without waiting. More...
 
static void Probe (int &rank, int &size, MPI_Comm comm)
 Blocking probe for incoming message of this type from any rank. Returns the rank and message size. More...
 
static bool IProbe (int &rank, int &size, MPI_Comm comm)
 Non-blocking probe for incoming message of this type from any rank. If there is an incoming message, returns true and sets 'rank' and 'size'. Otherwise returns false. More...
 
template<typename MapT >
static void RecvAll (MapT &rank_msg, MPI_Comm comm)
 Helper to receive all messages in a rank-to-message map container. More...
 

Public Attributes

std::string data
 
MPI_Request send_request
 

Protected Member Functions

virtual void Encode (int rank)
 
virtual void Decode (int rank)
 

Detailed Description

template<int Tag>
struct mfem::VarMessage< Tag >

Variable-length MPI message containing unspecific binary data.

Definition at line 341 of file communication.hpp.

Constructor & Destructor Documentation

template<int Tag>
mfem::VarMessage< Tag >::VarMessage ( )
inline

Definition at line 473 of file communication.hpp.

template<int Tag>
virtual mfem::VarMessage< Tag >::~VarMessage ( )
inlinevirtual

Definition at line 478 of file communication.hpp.

template<int Tag>
mfem::VarMessage< Tag >::VarMessage ( const VarMessage< Tag > &  other)
inline

Definition at line 484 of file communication.hpp.

Member Function Documentation

template<int Tag>
void mfem::VarMessage< Tag >::Clear ( )
inline

Clear the message and associated request.

Definition at line 476 of file communication.hpp.

template<int Tag>
virtual void mfem::VarMessage< Tag >::Decode ( int  rank)
inlineprotectedvirtual
template<int Tag>
virtual void mfem::VarMessage< Tag >::Encode ( int  rank)
inlineprotectedvirtual
template<int Tag>
static bool mfem::VarMessage< Tag >::IProbe ( int &  rank,
int &  size,
MPI_Comm  comm 
)
inlinestatic

Non-blocking probe for incoming message of this type from any rank. If there is an incoming message, returns true and sets 'rank' and 'size'. Otherwise returns false.

Definition at line 420 of file communication.hpp.

template<int Tag>
void mfem::VarMessage< Tag >::Isend ( int  rank,
MPI_Comm  comm 
)
inline

Non-blocking send to processor 'rank'. Returns immediately. Completion (as tested by MPI_Wait/Test) does not mean the message was received – it may be on its way or just buffered locally.

Definition at line 350 of file communication.hpp.

template<int Tag>
template<typename MapT >
static void mfem::VarMessage< Tag >::IsendAll ( MapT &  rank_msg,
MPI_Comm  comm 
)
inlinestatic

Helper to send all messages in a rank-to-message map container.

Definition at line 369 of file communication.hpp.

template<int Tag>
void mfem::VarMessage< Tag >::Issend ( int  rank,
MPI_Comm  comm 
)
inline

Non-blocking synchronous send to processor 'rank'. Returns immediately. Completion (MPI_Wait/Test) means that the message was received.

Definition at line 360 of file communication.hpp.

template<int Tag>
static void mfem::VarMessage< Tag >::Probe ( int &  rank,
int &  size,
MPI_Comm  comm 
)
inlinestatic

Blocking probe for incoming message of this type from any rank. Returns the rank and message size.

Definition at line 409 of file communication.hpp.

template<int Tag>
void mfem::VarMessage< Tag >::Recv ( int  rank,
int  size,
MPI_Comm  comm 
)
inline

Post-probe receive from processor 'rank' of message size 'size'.

Definition at line 433 of file communication.hpp.

template<int Tag>
template<typename MapT >
static void mfem::VarMessage< Tag >::RecvAll ( MapT &  rank_msg,
MPI_Comm  comm 
)
inlinestatic

Helper to receive all messages in a rank-to-message map container.

Definition at line 458 of file communication.hpp.

template<int Tag>
void mfem::VarMessage< Tag >::RecvDrop ( int  rank,
int  size,
MPI_Comm  comm 
)
inline

Like Recv(), but throw away the message.

Definition at line 448 of file communication.hpp.

template<int Tag>
template<typename MapT >
static bool mfem::VarMessage< Tag >::TestAllSent ( MapT &  rank_msg)
inlinestatic

Return true if all messages in the map container were sent, otherwise return false, without waiting.

Definition at line 391 of file communication.hpp.

template<int Tag>
template<typename MapT >
static void mfem::VarMessage< Tag >::WaitAllSent ( MapT &  rank_msg)
inlinestatic

Helper to wait for all messages in a map container to be sent.

Definition at line 379 of file communication.hpp.

Member Data Documentation

template<int Tag>
std::string mfem::VarMessage< Tag >::data

Definition at line 343 of file communication.hpp.

template<int Tag>
MPI_Request mfem::VarMessage< Tag >::send_request

Definition at line 344 of file communication.hpp.


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