libMesh
Classes | Namespaces | Functions | Variables
parallel_implementation.h File Reference

Go to the source code of this file.

Classes

class  libMesh::Parallel::StandardType< unsigned long long >
 
struct  libMesh::Parallel::Attributes< unsigned long long >
 
class  libMesh::Parallel::StandardType< std::pair< T1, T2 > >
 
class  libMesh::Parallel::StandardType< std::complex< T > >
 

Namespaces

 libMesh
 The libMesh namespace provides an interface to certain functionality in the library.
 
 libMesh::Parallel
 The Parallel namespace is for wrapper functions for common general parallel synchronization tasks.
 

Functions

 libMesh::Parallel::LIBMESH_INT_TYPE (char, MPI_CHAR)
 
 libMesh::Parallel::LIBMESH_INT_TYPE (signed char, MPI_SIGNED_CHAR)
 
 libMesh::Parallel::LIBMESH_INT_TYPE (unsigned char, MPI_UNSIGNED_CHAR)
 
 libMesh::Parallel::LIBMESH_INT_TYPE (short int, MPI_SHORT)
 
 libMesh::Parallel::LIBMESH_INT_TYPE (unsigned short int, MPI_UNSIGNED_SHORT)
 
 libMesh::Parallel::LIBMESH_INT_TYPE (int, MPI_INT)
 
 libMesh::Parallel::LIBMESH_INT_TYPE (unsigned int, MPI_UNSIGNED)
 
 libMesh::Parallel::LIBMESH_INT_TYPE (long, MPI_LONG)
 
 libMesh::Parallel::LIBMESH_INT_TYPE (long long, MPI_LONG_LONG_INT)
 
 libMesh::Parallel::LIBMESH_INT_TYPE (unsigned long, MPI_UNSIGNED_LONG)
 
 libMesh::Parallel::LIBMESH_INT_TYPE (unsigned long long, MPI_UNSIGNED_LONG_LONG)
 
 libMesh::Parallel::LIBMESH_PARALLEL_INTEGER_OPS (unsigned long long)
 
 libMesh::Parallel::LIBMESH_FLOAT_TYPE (float, MPI_FLOAT)
 
 libMesh::Parallel::LIBMESH_FLOAT_TYPE (double, MPI_DOUBLE)
 
 libMesh::Parallel::LIBMESH_FLOAT_TYPE (long double, MPI_LONG_DOUBLE)
 
 libMesh::Parallel::LIBMESH_CONTAINER_TYPE (std::set)
 
 libMesh::Parallel::LIBMESH_CONTAINER_TYPE (std::vector)
 
template<typename Context , typename Iter >
std::size_t libMesh::Parallel::packed_range_size (const Context *context, Iter range_begin, const Iter range_end)
 Return the total buffer size needed to encode a range of potentially-variable-size objects to a data array. More...
 
template<typename Context , typename buffertype , typename Iter >
Iter libMesh::Parallel::pack_range (const Context *context, Iter range_begin, const Iter range_end, typename std::vector< buffertype > &buffer, std::size_t approx_buffer_size=1000000)
 Encode a range of potentially-variable-size objects to a data array. More...
 
template<typename Context , typename buffertype , typename OutputIter , typename T >
void libMesh::Parallel::unpack_range (const std::vector< buffertype > &buffer, Context *context, OutputIter out_iter, const T *)
 Helper function for range unpacking. More...
 
void libMesh::Parallel::barrier (const Communicator &comm=Communicator_World)
 
template<typename T >
bool libMesh::Parallel::verify (const T &r, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::min (T &r, const Communicator &comm=Communicator_World)
 
template<typename T , typename U >
void libMesh::Parallel::minloc (T &r, U &min_id, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::max (T &r, const Communicator &comm=Communicator_World)
 
template<typename T , typename U >
void libMesh::Parallel::maxloc (T &r, U &max_id, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::sum (T &r, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::set_union (T &data, const unsigned int root_id, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::set_union (T &data, const Communicator &comm=Communicator_World)
 
status libMesh::Parallel::probe (const unsigned int src_processor_id, const MessageTag &tag=any_tag, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::send (const unsigned int dest_processor_id, const T &data, const MessageTag &tag=no_tag, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::send (const unsigned int dest_processor_id, const T &data, Request &req, const MessageTag &tag=no_tag, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::send (const unsigned int dest_processor_id, const T &data, const DataType &type, const MessageTag &tag=no_tag, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::send (const unsigned int dest_processor_id, const T &data, const DataType &type, Request &req, const MessageTag &tag=no_tag, const Communicator &comm=Communicator_World)
 
template<typename Context , typename Iter >
void libMesh::Parallel::send_packed_range (const unsigned int dest_processor_id, const Context *context, Iter range_begin, const Iter range_end, const MessageTag &tag=no_tag, const Communicator &comm=Communicator_World)
 
template<typename Context , typename Iter >
void libMesh::Parallel::send_packed_range (const unsigned int dest_processor_id, const Context *context, Iter range_begin, const Iter range_end, Request &req, const MessageTag &tag=no_tag, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::nonblocking_send (const unsigned int dest_processor_id, T &buf, const DataType &type, Request &r, const MessageTag &tag=no_tag, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::nonblocking_send (const unsigned int dest_processor_id, T &buf, Request &r, const MessageTag &tag=no_tag, const Communicator &comm=Communicator_World)
 
template<typename T >
Status libMesh::Parallel::receive (const unsigned int src_processor_id, T &buf, const MessageTag &tag=any_tag, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::receive (const unsigned int src_processor_id, T &buf, Request &req, const MessageTag &tag=any_tag, const Communicator &comm=Communicator_World)
 
template<typename T >
Status libMesh::Parallel::receive (const unsigned int src_processor_id, T &buf, const DataType &type, const MessageTag &tag=any_tag, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::receive (const unsigned int src_processor_id, T &buf, const DataType &type, Request &req, const MessageTag &tag=any_tag, const Communicator &comm=Communicator_World)
 
template<typename Context , typename OutputIter , typename T >
void libMesh::Parallel::receive_packed_range (const unsigned int src_processor_id, Context *context, OutputIter out_iter, const T *output_type, const MessageTag &tag=any_tag, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::nonblocking_receive (const unsigned int src_processor_id, T &buf, const DataType &type, Request &r, const MessageTag &tag=any_tag, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::nonblocking_receive (const unsigned int src_processor_id, T &buf, Request &r, const MessageTag &tag=any_tag, const Communicator &comm=Communicator_World)
 
template<typename T1 , typename T2 >
void libMesh::Parallel::send_receive (const unsigned int dest_processor_id, T1 &send, const unsigned int source_processor_id, T2 &recv, const MessageTag &send_tag=no_tag, const MessageTag &recv_tag=any_tag, const Communicator &comm=Communicator_World)
 
template<typename Context1 , typename RangeIter , typename Context2 , typename OutputIter , typename T >
void libMesh::Parallel::send_receive_packed_range (const unsigned int dest_processor_id, const Context1 *context1, RangeIter send_begin, const RangeIter send_end, const unsigned int source_processor_id, Context2 *context2, OutputIter out_iter, const T *output_type, const MessageTag &send_tag=no_tag, const MessageTag &recv_tag=any_tag, const Communicator &comm=Communicator_World)
 
template<typename T1 , typename T2 >
void libMesh::Parallel::send_receive (const unsigned int dest_processor_id, T1 &send, const DataType &type1, const unsigned int source_processor_id, T2 &recv, const DataType &type2, const MessageTag &send_tag=no_tag, const MessageTag &recv_tag=any_tag, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::gather (const unsigned int root_id, T send, std::vector< T > &recv, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::gather (const unsigned int root_id, std::vector< T > &r, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::allgather (T send, std::vector< T > &recv, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::allgather (std::vector< T > &r, const bool identical_buffer_sizes=false, const Communicator &comm=Communicator_World)
 
template<typename Context , typename Iter , typename OutputIter >
void libMesh::Parallel::gather_packed_range (const unsigned int root_id, Context *context, Iter range_begin, const Iter range_end, OutputIter out_iter, const Communicator &comm=Communicator_World)
 
template<typename Context , typename Iter , typename OutputIter >
void libMesh::Parallel::allgather_packed_range (Context *context, Iter range_begin, const Iter range_end, OutputIter out_iter, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::alltoall (std::vector< T > &r, const Communicator &comm=Communicator_World)
 
template<typename T >
void libMesh::Parallel::broadcast (T &data, const unsigned int root_id=0, const Communicator &comm=Communicator_World)
 
template<typename Context , typename OutputContext , typename Iter , typename OutputIter >
void libMesh::Parallel::broadcast_packed_range (const Context *context1, Iter range_begin, const Iter range_end, OutputContext *context2, OutputIter out_iter, const unsigned int root_id=0, const Communicator &comm=Communicator_World)
 
template<>
data_type libMesh::Parallel::dataplusint_type< short int > ()
 
template<>
data_type libMesh::Parallel::dataplusint_type< int > ()
 
template<>
data_type libMesh::Parallel::dataplusint_type< long > ()
 
template<>
data_type libMesh::Parallel::dataplusint_type< float > ()
 
template<>
data_type libMesh::Parallel::dataplusint_type< double > ()
 
template<>
data_type libMesh::Parallel::dataplusint_type< long double > ()
 

Variables

FakeCommunicator & libMesh::Parallel::Communicator_World = CommWorld