phdmesh::CommAll Class Reference

List of all members.

Detailed Description

Definition at line 157 of file ParallelComm.hpp.

Public Member Functions

ParallelMachine parallel () const
unsigned parallel_size () const
unsigned parallel_rank () const
CommBuffersend_buffer (unsigned) const
CommBufferrecv_buffer (unsigned) const
 CommAll ()
bool allocate_buffers (ParallelMachine, const unsigned num_msg_bounds, const unsigned *const send_size, const unsigned *const recv_size, const bool local_flag=false)
 CommAll (ParallelMachine)
bool allocate_buffers (const unsigned num_msg_bounds, const bool symmetric=false, const bool local_flag=false)
void communicate ()
void swap_send_recv ()
void reset_buffers ()


Constructor & Destructor Documentation

phdmesh::CommAll::CommAll (  ) 

Construct for undefined communication. No buffers are allocated.

phdmesh::CommAll::CommAll ( ParallelMachine   )  [explicit]

Construct for a to-be-sized communication. Allocate surrogate send buffers to enable no-op packing for the purpose of send sizing. Surrogate send scenario: 1) Surrogate send buffers are "packed" for sizing where packing sizes are recorded but no data is copied. 2) 'allocate_buffers(symmetric,flag)' is called to allocate buffers. The symmetric flag guarantees that the send sizes matches the receive sizes. 3) Send buffers are identically packed; however, this packing copies data into the send buffers.


Member Function Documentation

CommBuffer & phdmesh::CommAll::send_buffer ( unsigned   )  const [inline]

Obtain the message buffer for a given processor

Definition at line 459 of file ParallelComm.hpp.

CommBuffer & phdmesh::CommAll::recv_buffer ( unsigned   )  const [inline]

Obtain the message buffer for a given processor

Definition at line 466 of file ParallelComm.hpp.

bool phdmesh::CommAll::allocate_buffers ( ParallelMachine  ,
const unsigned  num_msg_bounds,
const unsigned *const   send_size,
const unsigned *const   recv_size,
const bool  local_flag = false 
)

Allocate send and receive buffers based upon input sizes. If recv_size == NULL then the receive size is determined by communicating the send sizes. Symmetry is given by passing the same data for both send and receive sizes. Return global parallel OR of local flags.

bool phdmesh::CommAll::allocate_buffers ( const unsigned  num_msg_bounds,
const bool  symmetric = false,
const bool  local_flag = false 
)

Allocate asymmetric communication based upon sizing from the surrogate send buffer packing. If symmetric then the receive sizes are guaranteed to be identical to the send sizes. Return global parallel OR of local flags.

void phdmesh::CommAll::communicate (  ) 

Communicate send buffers to receive buffers.

void phdmesh::CommAll::swap_send_recv (  ) 

Swap send and receive buffers leading to reversed communication.

void phdmesh::CommAll::reset_buffers (  ) 

Reset, but do not reallocate, message buffers for reprocessing. Sets 'size() == 0' and 'remaining() == capacity()'.


The documentation for this class was generated from the following file:
Generated on Tue Jul 13 09:22:43 2010 for phdMesh by  doxygen 1.4.7