PlasCom2  1.0
XPACC Multi-physics simluation application
CommunicatorObject Class Reference

Main encapsulation of MPI. More...

Detailed Description

Main encapsulation of MPI.

The CommunicatorObject provides an interface to MPI. This is for convenience, consistency, and to provide an "easy" access point for replacing the communication substrate with something that's not MPI.

Definition at line 62 of file COMM.H.

#include <COMM.H>

Public Member Functions

int RenewCommunicator (MPI_Comm &inComm)
 
MPI_Comm GetCommunicator () const
 
int SetCommunicator (MPI_Comm &inComm)
 
void TakeOwnership ()
 
 CommunicatorObject ()
 
 CommunicatorObject (MPI_Comm &incomm)
 
 CommunicatorObject (int *narg, char ***args)
 
 CommunicatorObject (const CommunicatorObject &incomm)
 
MPI_Datatype ResolveDataType (const comm::DataTypes &dt)
 
MPI_Op ResolveOp (const comm::Ops &op)
 
int Split (int color, int key, CommunicatorObject &newcomm)
 
int WaitRecv (int recvid)
 
int WaitAll ()
 
void ClearRequests ()
 
int NOpenRequests ()
 
int Initialize (CommunicatorObject &incomm)
 
int Initialize (int *narg=NULL, char ***args=NULL)
 
bool Good ()
 
int SetExit (int errin)
 
int SetErr (int errin)
 
void ClearErr ()
 
int Check (comm::Ops op=comm::MAXOP)
 
int NProc ()
 
int Rank ()
 
int CartRank ()
 
std::string Hostname ()
 
std::vector< int > & CartCoordinates ()
 
std::vector< int > & CartDimensions ()
 
int CartNeighbors (std::vector< int > &neighborRanks)
 
MPI_Comm CartComm ()
 
MPI_Comm World ()
 
MPI_Comm Comm ()
 
int Finalize ()
 
int Barrier ()
 
int Size ()
 
int ComputeCartesianDims (int numNodes, int numDims)
 
int InitializeCartesianTopology (int numNodes, int numDims, std::vector< int > &dimDir, const std::vector< int > &isPeriodic, bool reOrder, CommunicatorObject &cartComm)
 
 ~CommunicatorObject ()
 
int StartSend (unsigned int rid)
 
int SendAll ()
 
int StartRecv (unsigned int rid)
 
int RecvAll ()
 
int BroadCast (std::string &sval, int root_rank=0)
 
int BroadCast (MobileObject *mo, int root_rank=0)
 
int _ASend (void *buf, int sendsize, unsigned int remote_rank, int tag=0)
 
int _SetSend (void *buf, int sendsize, unsigned int remote_rank, int tag=0)
 
int _ARecv (void *buf, int recvsize, unsigned int remote_rank, int tag=0)
 
int _SetRecv (void *buf, int recvsize, unsigned int remote_rank, int tag=0)
 
int _AllGatherv (void *sendbuf, int mysendcnt, int datasize, void *recvbuf)
 
int _Send (void *buf, int sendsize, unsigned int remote_rank, int tag=0)
 
int _Recv (void *buf, int recvsize, unsigned int remote_rank, int tag=0)
 
int _BroadCastMOV (std::vector< MobileObject *> &mos, int root_rank=0)
 
int _GatherMO (MobileObject *sPtr, std::vector< MobileObject *> &rVec, int sndcnt, int root=0)
 
int _GatherMOV (std::vector< MobileObject *> &sVec, std::vector< MobileObject *> &rVec, std::vector< int > &nsend_all, int root=0)
 
int _AllGatherMO (MobileObject *sPtr, std::vector< MobileObject *> &rVec, int sndcnt=1)
 
int _AllGatherMOV (std::vector< MobileObject *> &sVec, std::vector< MobileObject *> &rVec, std::vector< int > &nsend_all)
 
template<typename DataType >
int ASendBuf (DataType *sendBuf, size_t nVal, unsigned int remote_rank, int tag=-1)
 
template<typename DataType >
int ARecvBuf (DataType *recvbuf, size_t nVal, unsigned int remote_rank, int tag=0)
 
template<typename DataType >
int ASend (std::vector< DataType > &sendbuf, unsigned int remote_rank, int tag=0)
 
template<typename DataType >
int ASend (std::vector< DataType > &sendbuf, unsigned int startIndex, unsigned int sendSize, unsigned int remote_rank, int tag=0)
 
template<typename DataType >
int SetSend (std::vector< DataType > &sendbuf, unsigned int remote_rank, int tag=0)
 
template<typename DataType >
int SetRecv (std::vector< DataType > &recvbuf, unsigned int remote_rank, int tag=0)
 
template<typename DataType >
int ARecv (std::vector< DataType > &recvbuf, unsigned int remote_rank, int tag=0)
 
template<typename DataType >
int ARecv (std::vector< DataType > &recvbuf, unsigned int startIndex, unsigned int numRecv, unsigned int remote_rank, int tag=0)
 
template<typename DataType >
int StreamBroadCast (DataType &inData, int root_rank=0)
 
template<typename DataType >
int BroadCast (DataType &buf, int root_rank)
 
template<typename DataType >
int BroadCast (std::vector< DataType > &buf, int root_rank)
 
template<typename DataType >
int Reduce (DataType &send, DataType &recv, const comm::DataTypes &dt, const comm::Ops &op, int root)
 
template<typename DataType >
int Reduce (std::vector< DataType > &send, std::vector< DataType > &recv, const comm::DataTypes &dt, const comm::Ops &op, int root)
 
template<typename DataType >
int AllReduce (std::vector< DataType > &send, std::vector< DataType > &recv, const comm::DataTypes &dt, const comm::Ops &op)
 
template<typename DataType >
int AllReduce (DataType &send, DataType &recv, const comm::DataTypes &dt, const comm::Ops &op)
 
template<typename DataType >
int AllGather (std::vector< DataType > &sendvec, std::vector< DataType > &recvvec, int sndcnt=0, int recvcnt=0)
 
template<typename DataType >
int AllGather (DataType &sendval, std::vector< DataType > &recvvec)
 
template<typename DataType >
int AllGatherv (std::vector< DataType > &sendvec, std::vector< DataType > &recvvec, std::vector< int > &nsend_all)
 
template<typename DataType >
int AllGatherv (std::vector< DataType > &sendvec, std::vector< DataType > &recvvec)
 
template<typename DataType >
int Gather (DataType &sendval, std::vector< DataType > &recvvec, int root=0)
 
template<typename DataType >
int StreamGather (DataType &sendval, std::vector< DataType > &recvvec, int root=0)
 
template<typename DataType >
int Gather (std::vector< DataType > &sendvec, std::vector< DataType > &recvvec, int sndcnt=0, int recvcnt=0, int root=0)
 
template<typename DataType >
int Gatherv (std::vector< DataType > &sendvec, std::vector< DataType > &recvvec, std::vector< int > &nsend_all, int nsend=0, int root=0)
 
template<typename MOType >
int BroadCastMobileObject (MOType &mo, int root_rank=0)
 
template<typename MOType >
int BroadCastMO (MOType &mo, int root_rank=0)
 
template<typename MOType >
int BroadCastMO (std::vector< MOType > &mov, int root_rank=0)
 
template<typename MOType >
int BroadCastMOVector (std::vector< MOType > &mov, int root_rank=0)
 
template<typename MOType >
int GatherMO (MOType &sendval, std::vector< MOType > &recvvec, int root=0)
 
template<typename MOType >
int GatherMO (std::vector< MOType > &sendvec, std::vector< MOType > &recvvec, std::vector< int > &nsend_all, int root=0)
 
template<typename MOType >
int AllGatherMO (MOType &sendval, std::vector< MOType > &recvvec)
 
template<typename MOType >
int AllGatherMO (std::vector< MOType > &sendvec, std::vector< MOType > &recvvec, std::vector< int > &nsend_all, int root=0)
 
template<typename MOType >
int GatherMOV (std::vector< MOType > &sendvec, std::vector< MOType > &recvvec, std::vector< int > &nsend_all, int root=0)
 
template<typename MOType >
int AllGatherMOV (std::vector< MOType > &sendvec, std::vector< MOType > &recvvec, std::vector< int > &nsend_all, int root=0)
 
template<typename T >
int Union (std::vector< T > &input_data, std::vector< T > &output_data)
 

Public Attributes

MPI_Datatype IntegerTypeID
 

Private Attributes

int _rank
 
MPI_Comm _comm
 
MPI_Comm _cart_comm
 
int _cart_rank
 
bool _master
 
bool _own_comm
 
bool _initd
 
int _error
 
int _rc
 
int _nproc
 
std::vector< MPI_Request > _send_requests
 
std::vector< MPI_Request > _recv_requests
 
std::vector< int > _send_tags
 
std::vector< int > _recv_tags
 
std::vector< MPI_Status > _status
 
std::vector< int > _cart_coords
 
std::vector< int > _cart_dims
 
std::vector< int > _cart_periodic
 
Collaboration diagram for CommunicatorObject:

Constructor & Destructor Documentation

◆ CommunicatorObject() [1/4]

◆ CommunicatorObject() [2/4]

◆ CommunicatorObject() [3/4]

◆ CommunicatorObject() [4/4]

◆ ~CommunicatorObject()

Member Function Documentation

◆ _AllGatherMO()

int _AllGatherMO ( MobileObject sPtr,
std::vector< MobileObject *> &  rVec,
int  sndcnt = 1 
)

◆ _AllGatherMOV()

int _AllGatherMOV ( std::vector< MobileObject *> &  sVec,
std::vector< MobileObject *> &  rVec,
std::vector< int > &  nsend_all 
)

Definition at line 796 of file COMM.C.

References CommunicatorObject::_comm, CommunicatorObject::_nproc, CommunicatorObject::_rank, CommunicatorObject::_rc, and CommunicatorObject::AllGatherv().

Here is the call graph for this function:

◆ _AllGatherv()

int _AllGatherv ( void *  sendbuf,
int  mysendcnt,
int  datasize,
void *  recvbuf 
)

Definition at line 542 of file COMM.C.

References CommunicatorObject::_comm, CommunicatorObject::_nproc, CommunicatorObject::_rank, CommunicatorObject::_rc, and CommunicatorObject::AllGather().

Here is the call graph for this function:

◆ _ARecv()

int _ARecv ( void *  buf,
int  recvsize,
unsigned int  remote_rank,
int  tag = 0 
)

◆ _ASend()

int _ASend ( void *  buf,
int  sendsize,
unsigned int  remote_rank,
int  tag = 0 
)

◆ _BroadCastMOV()

int _BroadCastMOV ( std::vector< MobileObject *> &  mos,
int  root_rank = 0 
)

◆ _GatherMO()

int _GatherMO ( MobileObject sPtr,
std::vector< MobileObject *> &  rVec,
int  sndcnt,
int  root = 0 
)

◆ _GatherMOV()

int _GatherMOV ( std::vector< MobileObject *> &  sVec,
std::vector< MobileObject *> &  rVec,
std::vector< int > &  nsend_all,
int  root = 0 
)

Definition at line 735 of file COMM.C.

References CommunicatorObject::_comm, CommunicatorObject::_nproc, CommunicatorObject::_rank, CommunicatorObject::_rc, and CommunicatorObject::Gatherv().

Here is the call graph for this function:

◆ _Recv()

int _Recv ( void *  buf,
int  recvsize,
unsigned int  remote_rank,
int  tag = 0 
)

Definition at line 515 of file COMM.C.

References CommunicatorObject::_comm, and CommunicatorObject::_rc.

◆ _Send()

int _Send ( void *  buf,
int  sendsize,
unsigned int  remote_rank,
int  tag = 0 
)

Definition at line 475 of file COMM.C.

References CommunicatorObject::_comm, and CommunicatorObject::_rc.

◆ _SetRecv()

int _SetRecv ( void *  buf,
int  recvsize,
unsigned int  remote_rank,
int  tag = 0 
)

◆ _SetSend()

int _SetSend ( void *  buf,
int  sendsize,
unsigned int  remote_rank,
int  tag = 0 
)

◆ AllGather() [1/2]

int AllGather ( std::vector< DataType > &  sendvec,
std::vector< DataType > &  recvvec,
int  sndcnt = 0,
int  recvcnt = 0 
)
inline

Definition at line 326 of file COMM.H.

Referenced by CommunicatorObject::_AllGatherMO(), and CommunicatorObject::_AllGatherv().

Here is the caller graph for this function:

◆ AllGather() [2/2]

int AllGather ( DataType &  sendval,
std::vector< DataType > &  recvvec 
)
inline

Definition at line 355 of file COMM.H.

◆ AllGatherMO() [1/2]

int AllGatherMO ( MOType &  sendval,
std::vector< MOType > &  recvvec 
)
inline

Definition at line 596 of file COMM.H.

◆ AllGatherMO() [2/2]

int AllGatherMO ( std::vector< MOType > &  sendvec,
std::vector< MOType > &  recvvec,
std::vector< int > &  nsend_all,
int  root = 0 
)
inline

Definition at line 611 of file COMM.H.

◆ AllGatherMOV()

int AllGatherMOV ( std::vector< MOType > &  sendvec,
std::vector< MOType > &  recvvec,
std::vector< int > &  nsend_all,
int  root = 0 
)
inline

Definition at line 675 of file COMM.H.

◆ AllGatherv() [1/2]

int AllGatherv ( std::vector< DataType > &  sendvec,
std::vector< DataType > &  recvvec,
std::vector< int > &  nsend_all 
)
inline

Definition at line 366 of file COMM.H.

References ix::comm::DTINT, and ix::comm::SUMOP.

Referenced by CommunicatorObject::_AllGatherMOV().

Here is the caller graph for this function:

◆ AllGatherv() [2/2]

int AllGatherv ( std::vector< DataType > &  sendvec,
std::vector< DataType > &  recvvec 
)
inline

Definition at line 381 of file COMM.H.

References ix::comm::DTINT, and ix::comm::SUMOP.

◆ AllReduce() [1/2]

int AllReduce ( std::vector< DataType > &  send,
std::vector< DataType > &  recv,
const comm::DataTypes dt,
const comm::Ops op 
)
inline

Definition at line 302 of file COMM.H.

◆ AllReduce() [2/2]

int AllReduce ( DataType &  send,
DataType &  recv,
const comm::DataTypes dt,
const comm::Ops op 
)
inline

Definition at line 316 of file COMM.H.

◆ ARecv() [1/2]

int ARecv ( std::vector< DataType > &  recvbuf,
unsigned int  remote_rank,
int  tag = 0 
)
inline

Definition at line 207 of file COMM.H.

◆ ARecv() [2/2]

int ARecv ( std::vector< DataType > &  recvbuf,
unsigned int  startIndex,
unsigned int  numRecv,
unsigned int  remote_rank,
int  tag = 0 
)
inline

Definition at line 216 of file COMM.H.

◆ ARecvBuf()

int ARecvBuf ( DataType *  recvbuf,
size_t  nVal,
unsigned int  remote_rank,
int  tag = 0 
)
inline

Definition at line 163 of file COMM.H.

Referenced by halo::PostReceives(), halo::PostSimpleReceives(), and halo::ReceiveMessage().

Here is the caller graph for this function:

◆ ASend() [1/2]

int ASend ( std::vector< DataType > &  sendbuf,
unsigned int  remote_rank,
int  tag = 0 
)
inline

Definition at line 171 of file COMM.H.

◆ ASend() [2/2]

int ASend ( std::vector< DataType > &  sendbuf,
unsigned int  startIndex,
unsigned int  sendSize,
unsigned int  remote_rank,
int  tag = 0 
)
inline

Definition at line 180 of file COMM.H.

◆ ASendBuf()

int ASendBuf ( DataType *  sendBuf,
size_t  nVal,
unsigned int  remote_rank,
int  tag = -1 
)
inline

Definition at line 155 of file COMM.H.

Referenced by halo::Send(), halo::SendMessage(), and halo::SimpleSend().

Here is the caller graph for this function:

◆ Barrier()

int Barrier ( )
inline

Definition at line 124 of file COMM.H.

Referenced by pcpp::io::Everyone(), ParallelGlobalObj< CommunicatorType, StackType, ErrorType, ProfilerType >::FunctionEntry(), ParallelGlobalObj< CommunicatorType, StackType, ErrorType, ProfilerType >::FunctionExit(), plascom2::ParallelTest(), application::RunApplication(), TestGrid_CurvilinearMetric(), TestGrid_CurvilinearVGWavy(), TestGrid_PBS_IntegratedHalo(), TestHDF5HyperSlab(), TestHDF5PBSGridIO(), TestHDF5Read2DBlockStructuredGrid(), TestIntegrated_PFCurvilinear2DX(), TestIntegrated_PFRectilinear2DX(), TestIntegrated_Poiseuille2DX(), TestIntegrated_Scalar_Advection3DZ(), TestIntegrated_ViscousShock2DX(), TestIntegrated_VSCurvilinear2DX(), TestIntegrated_VSRectilinear2DX(), TestMaxwellRHSTimeIntegrate(), TestPlasCom2_AcousticPulseFarfield2D(), TestPlasCom2_AcousticPulseFarfield3D(), TestPlasCom2_AcousticPulsePeriodic2D(), TestPlasCom2_AcousticPulsePeriodic3D(), TestPlasCom2_AcousticPulseSlipwall2D(), TestPlasCom2_AcousticPulseSlipwall3D(), TestPlasCom2_AcousticPulseSponge2D(), TestPlasCom2_AcousticPulseSponge3D(), TestPlasCom2_APCurvilinearFarfield2D(), TestPlasCom2_APCurvilinearFarfield3D(), TestPlasCom2_APCurvilinearPeriodic2D(), TestPlasCom2_APCurvilinearPeriodic3D(), TestPlasCom2_APCurvilinearSlipwall2D(), TestPlasCom2_APCurvilinearSlipwall3D(), TestPlasCom2_APCurvilinearSponge2D(), TestPlasCom2_APCurvilinearSponge3D(), TestPlasCom2_APRectilinearFarfield2D(), TestPlasCom2_APRectilinearFarfield3D(), TestPlasCom2_APRectilinearPeriodic2D(), TestPlasCom2_APRectilinearPeriodic3D(), TestPlasCom2_APRectilinearSlipwall2D(), TestPlasCom2_APRectilinearSlipwall3D(), TestPlasCom2_APRectilinearSponge2D(), TestPlasCom2_APRectilinearSponge3D(), TestPlasCom2_PFCurvilinear2DX_Regression(), TestPlasCom2_PFCurvilinear2DY_Regression(), TestPlasCom2_PFCurvilinear3DZ_Regression(), TestPlasCom2_PFRectilinear2DX_Regression(), TestPlasCom2_PFRectilinear2DY_Regression(), TestPlasCom2_PFRectilinear3DZ_Regression(), TestPlasCom2_Poiseuille2DY_Regression(), TestPlasCom2_Restart(), TestPlasCom2_Scalar_Advection2DX(), TestPlasCom2_Scalar_Advection2DY(), TestPlasCom2_Scalar_AdvectionDiffusion2DX(), TestPlasCom2_Scalar_AdvectionDiffusion2DY(), TestPlasCom2_ViscousShock2DX_Regression(), TestPlasCom2_ViscousShock2DY_Regression(), TestPlasCom2_ViscousShock3DZ_Regression(), TestPlasCom2_VSCurvilinear2DX_Regression(), TestPlasCom2_VSCurvilinear2DY_Regression(), TestPlasCom2_VSCurvilinear3DZ_Regression(), TestPlasCom2_VSRectilinear2DX_Regression(), TestPlasCom2_VSRectilinear2DY_Regression(), TestPlasCom2_VSRectilinear3DZ_Regression(), TestPlasCom2Input(), TestPlasCom2Output(), and TestVelocityGradientPeriodic().

◆ BroadCast() [1/4]

int BroadCast ( std::string &  sval,
int  root_rank = 0 
)

◆ BroadCast() [2/4]

int BroadCast ( MobileObject mo,
int  root_rank = 0 
)

◆ BroadCast() [3/4]

int BroadCast ( DataType &  buf,
int  root_rank 
)
inline

Definition at line 253 of file COMM.H.

◆ BroadCast() [4/4]

int BroadCast ( std::vector< DataType > &  buf,
int  root_rank 
)
inline

Definition at line 260 of file COMM.H.

◆ BroadCastMO() [1/2]

int BroadCastMO ( MOType &  mo,
int  root_rank = 0 
)
inline

Definition at line 502 of file COMM.H.

◆ BroadCastMO() [2/2]

int BroadCastMO ( std::vector< MOType > &  mov,
int  root_rank = 0 
)
inline

Definition at line 508 of file COMM.H.

◆ BroadCastMobileObject()

int BroadCastMobileObject ( MOType &  mo,
int  root_rank = 0 
)
inline

Definition at line 496 of file COMM.H.

◆ BroadCastMOVector()

int BroadCastMOVector ( std::vector< MOType > &  mov,
int  root_rank = 0 
)
inline

Definition at line 520 of file COMM.H.

◆ CartComm()

MPI_Comm CartComm ( )
inline

Definition at line 120 of file COMM.H.

◆ CartCoordinates()

std::vector<int>& CartCoordinates ( )
inline

◆ CartDimensions()

std::vector<int>& CartDimensions ( )
inline

Definition at line 118 of file COMM.H.

Referenced by parallel_blockstructured::ParallelSetup(), TestHaloParallel(), TestHaloPeriodic(), TestHDF5HyperSlab(), and TestHDF5Read2DBlockStructuredGrid().

Here is the caller graph for this function:

◆ CartNeighbors()

◆ CartRank()

int CartRank ( )
inline

Definition at line 115 of file COMM.H.

References ix::sys::Hostname().

Here is the call graph for this function:

◆ Check()

◆ ClearErr()

void ClearErr ( )
inline

Definition at line 111 of file COMM.H.

References ix::comm::MAXOP.

Referenced by CommunicatorObject::RenewCommunicator().

Here is the caller graph for this function:

◆ ClearRequests()

void ClearRequests ( )

◆ Comm()

MPI_Comm Comm ( )
inline

Definition at line 122 of file COMM.H.

Referenced by base::Open(), pcpp::io::hdf5::ParallelReadBlockStructuredGrid(), TestIntegrated_PFCurvilinear2DX(), TestIntegrated_PFCurvilinear2DY(), TestIntegrated_PFCurvilinear3DZ(), TestIntegrated_PFRectilinear2DX(), TestIntegrated_PFRectilinear2DY(), TestIntegrated_PFRectilinear3DZ(), TestIntegrated_Poiseuille2DX(), TestIntegrated_Poiseuille2DY(), TestIntegrated_Poiseuille3DZ(), TestIntegrated_Scalar_Advection3DZ(), TestIntegrated_ViscousShock2DX(), TestIntegrated_ViscousShock2DY(), TestIntegrated_ViscousShock3DZ(), TestIntegrated_VSCurvilinear2DX(), TestIntegrated_VSCurvilinear2DY(), TestIntegrated_VSCurvilinear3DZ(), TestIntegrated_VSRectilinear2DX(), TestIntegrated_VSRectilinear2DY(), TestIntegrated_VSRectilinear3DZ(), TestPlasCom2_AcousticPulseFarfield2D(), TestPlasCom2_AcousticPulseFarfield3D(), TestPlasCom2_AcousticPulsePeriodic2D(), TestPlasCom2_AcousticPulsePeriodic3D(), TestPlasCom2_AcousticPulseSlipwall2D(), TestPlasCom2_AcousticPulseSlipwall3D(), TestPlasCom2_AcousticPulseSponge2D(), TestPlasCom2_AcousticPulseSponge3D(), TestPlasCom2_APCurvilinearFarfield2D(), TestPlasCom2_APCurvilinearFarfield3D(), TestPlasCom2_APCurvilinearPeriodic2D(), TestPlasCom2_APCurvilinearPeriodic3D(), TestPlasCom2_APCurvilinearSlipwall2D(), TestPlasCom2_APCurvilinearSlipwall3D(), TestPlasCom2_APCurvilinearSponge2D(), TestPlasCom2_APCurvilinearSponge3D(), TestPlasCom2_APRectilinearFarfield2D(), TestPlasCom2_APRectilinearFarfield3D(), TestPlasCom2_APRectilinearPeriodic2D(), TestPlasCom2_APRectilinearPeriodic3D(), TestPlasCom2_APRectilinearSlipwall2D(), TestPlasCom2_APRectilinearSlipwall3D(), TestPlasCom2_APRectilinearSponge2D(), TestPlasCom2_APRectilinearSponge3D(), TestPlasCom2_PFCurvilinear2DX_Regression(), TestPlasCom2_PFCurvilinear2DY_Regression(), TestPlasCom2_PFCurvilinear3DZ_Regression(), TestPlasCom2_PFRectilinear2DX_Regression(), TestPlasCom2_PFRectilinear2DY_Regression(), TestPlasCom2_PFRectilinear3DZ_Regression(), TestPlasCom2_Poiseuille2DX_Regression(), TestPlasCom2_Poiseuille2DY_Regression(), TestPlasCom2_Poiseuille3DZ_Regression(), TestPlasCom2_Restart(), TestPlasCom2_Scalar_Advection2DX(), TestPlasCom2_Scalar_Advection2DY(), TestPlasCom2_Scalar_AdvectionDiffusion2DX(), TestPlasCom2_Scalar_AdvectionDiffusion2DY(), TestPlasCom2_ViscousShock2DX_Regression(), TestPlasCom2_ViscousShock2DY_Regression(), TestPlasCom2_ViscousShock3DZ_Regression(), TestPlasCom2_VSCurvilinear2DX_Regression(), TestPlasCom2_VSCurvilinear2DY_Regression(), TestPlasCom2_VSCurvilinear3DZ_Regression(), TestPlasCom2_VSRectilinear2DX_Regression(), TestPlasCom2_VSRectilinear2DY_Regression(), and TestPlasCom2_VSRectilinear3DZ_Regression().

◆ ComputeCartesianDims()

int ComputeCartesianDims ( int  numNodes,
int  numDims 
)

Definition at line 166 of file COMM.C.

References CommunicatorObject::_cart_dims.

Referenced by CommunicatorObject::InitializeCartesianTopology().

Here is the caller graph for this function:

◆ Finalize()

int Finalize ( )

Definition at line 370 of file COMM.C.

References CommunicatorObject::_initd.

Referenced by ParallelGlobalObj< CommunicatorType, StackType, ErrorType, ProfilerType >::Finalize().

Here is the caller graph for this function:

◆ Gather() [1/2]

int Gather ( DataType &  sendval,
std::vector< DataType > &  recvvec,
int  root = 0 
)
inline

Definition at line 395 of file COMM.H.

Referenced by CommunicatorObject::_GatherMO().

Here is the caller graph for this function:

◆ Gather() [2/2]

int Gather ( std::vector< DataType > &  sendvec,
std::vector< DataType > &  recvvec,
int  sndcnt = 0,
int  recvcnt = 0,
int  root = 0 
)
inline

Definition at line 442 of file COMM.H.

◆ GatherMO() [1/2]

int GatherMO ( MOType &  sendval,
std::vector< MOType > &  recvvec,
int  root = 0 
)
inline

Definition at line 544 of file COMM.H.

◆ GatherMO() [2/2]

int GatherMO ( std::vector< MOType > &  sendvec,
std::vector< MOType > &  recvvec,
std::vector< int > &  nsend_all,
int  root = 0 
)
inline

Definition at line 564 of file COMM.H.

◆ GatherMOV()

int GatherMOV ( std::vector< MOType > &  sendvec,
std::vector< MOType > &  recvvec,
std::vector< int > &  nsend_all,
int  root = 0 
)
inline

Definition at line 643 of file COMM.H.

◆ Gatherv()

int Gatherv ( std::vector< DataType > &  sendvec,
std::vector< DataType > &  recvvec,
std::vector< int > &  nsend_all,
int  nsend = 0,
int  root = 0 
)
inline

Definition at line 460 of file COMM.H.

Referenced by CommunicatorObject::_GatherMOV().

Here is the caller graph for this function:

◆ GetCommunicator()

MPI_Comm GetCommunicator ( ) const
inline

Definition at line 85 of file COMM.H.

Referenced by CommunicatorObject::CommunicatorObject(), pcpp::comm::ReduceTimers(), and TestOverkit_Config().

Here is the caller graph for this function:

◆ Good()

bool Good ( )
inline

Definition at line 108 of file COMM.H.

◆ Hostname()

std::string Hostname ( )

Definition at line 196 of file COMM.C.

◆ Initialize() [1/2]

◆ Initialize() [2/2]

int Initialize ( int *  narg = NULL,
char ***  args = NULL 
)

◆ InitializeCartesianTopology()

int InitializeCartesianTopology ( int  numNodes,
int  numDims,
std::vector< int > &  dimDir,
const std::vector< int > &  isPeriodic,
bool  reOrder,
CommunicatorObject cartComm 
)

◆ NOpenRequests()

int NOpenRequests ( )
inline

Definition at line 105 of file COMM.H.

References plascom2::operators::sbp::Initialize().

Here is the call graph for this function:

◆ NProc()

int NProc ( )
inline

Definition at line 113 of file COMM.H.

Referenced by simulation::report::Grid(), halo::PostReceives(), application::RunMaxwellSolver(), application::RunPlasCom2(), halo::Send(), TestIntegrated_PFCurvilinear2DX(), TestIntegrated_PFCurvilinear2DY(), TestIntegrated_PFCurvilinear3DZ(), TestIntegrated_PFRectilinear2DX(), TestIntegrated_PFRectilinear2DY(), TestIntegrated_PFRectilinear3DZ(), TestIntegrated_Poiseuille2DX(), TestIntegrated_Poiseuille2DY(), TestIntegrated_Poiseuille3DZ(), TestIntegrated_ViscousShock2DX(), TestIntegrated_ViscousShock2DY(), TestIntegrated_ViscousShock3DZ(), TestIntegrated_VSCurvilinear2DX(), TestIntegrated_VSCurvilinear2DY(), TestIntegrated_VSCurvilinear3DZ(), TestIntegrated_VSRectilinear2DX(), TestIntegrated_VSRectilinear2DY(), TestIntegrated_VSRectilinear3DZ(), TestPlasCom2_AcousticPulseFarfield2D(), TestPlasCom2_AcousticPulseFarfield3D(), TestPlasCom2_AcousticPulsePeriodic2D(), TestPlasCom2_AcousticPulsePeriodic3D(), TestPlasCom2_AcousticPulseSlipwall2D(), TestPlasCom2_AcousticPulseSlipwall3D(), TestPlasCom2_AcousticPulseSponge2D(), TestPlasCom2_AcousticPulseSponge3D(), TestPlasCom2_APCurvilinearFarfield2D(), TestPlasCom2_APCurvilinearFarfield3D(), TestPlasCom2_APCurvilinearPeriodic2D(), TestPlasCom2_APCurvilinearPeriodic3D(), TestPlasCom2_APCurvilinearSlipwall2D(), TestPlasCom2_APCurvilinearSlipwall3D(), TestPlasCom2_APCurvilinearSponge2D(), TestPlasCom2_APCurvilinearSponge3D(), TestPlasCom2_APRectilinearFarfield2D(), TestPlasCom2_APRectilinearFarfield3D(), TestPlasCom2_APRectilinearPeriodic2D(), TestPlasCom2_APRectilinearPeriodic3D(), TestPlasCom2_APRectilinearSlipwall2D(), TestPlasCom2_APRectilinearSlipwall3D(), TestPlasCom2_APRectilinearSponge2D(), TestPlasCom2_APRectilinearSponge3D(), and TestPlasCom2_Restart().

Here is the caller graph for this function:

◆ Rank()

int Rank ( )

Definition at line 363 of file COMM.C.

References CommunicatorObject::_comm, and CommunicatorObject::_rank.

Referenced by plascom2::util::ConfigureVirtualNode(), plascom2::util::ConvertLegacyConfiguration(), testfixtures::CreateSimulationFixtures(), euler::util::CreateSimulationFixtures(), pcpp::io::Everyone(), pcpp::io::hdf5::FetchGridData(), pcpp::io::hdf5::FetchStateData(), pcpp::io::hdf5::FileInfo(), ParallelGlobalObj< CommunicatorType, StackType, ErrorType, ProfilerType >::Init(), euler::util::InitializeSimulationFixtures(), plascom2::ParallelTest(), pcpp::util::ProcessConfigurationFile(), pcpp::util::ProcessConfigurationRestart(), ParallelGlobalObj< CommunicatorType, StackType, ErrorType, ProfilerType >::Rank(), pcpp::io::hdf5::ReadGrid(), plascom2::util::ReadLegacyBCDat(), plascom2::io::hdf5::ReadSingleState(), application::RunMaxwellSolver(), application::RunPlasCom2(), ParallelTestingObject< CommType, ResultsType >::RunTest(), pcpp::comm::SetupCartesianTopology(), plascom2::util::SplitDomains(), TestGrid_PBS_IntegratedHalo(), TestHaloParallel(), TestHaloPeriodic(), TestHDF5GridIO(), TestHDF5HyperSlab(), TestHDF5LegacyFileInfo(), TestHDF5PBSGridIO(), TestHDF5Read2DBlockStructuredGrid(), TestIntegrated_PFCurvilinear2DX(), TestIntegrated_PFCurvilinear2DY(), TestIntegrated_PFCurvilinear3DZ(), TestIntegrated_PFRectilinear2DX(), TestIntegrated_PFRectilinear2DY(), TestIntegrated_PFRectilinear3DZ(), TestIntegrated_Poiseuille2DX(), TestIntegrated_Poiseuille2DY(), TestIntegrated_Poiseuille3DZ(), TestIntegrated_Scalar_Advection3DZ(), TestIntegrated_ViscousShock2DX(), TestIntegrated_ViscousShock2DY(), TestIntegrated_ViscousShock3DZ(), TestIntegrated_VSCurvilinear2DX(), TestIntegrated_VSCurvilinear2DY(), TestIntegrated_VSCurvilinear3DZ(), TestIntegrated_VSRectilinear2DX(), TestIntegrated_VSRectilinear2DY(), TestIntegrated_VSRectilinear3DZ(), TestPCPPHDF5Read(), TestPCPPHDF5Write(), TestPlasCom2_AcousticPulseFarfield2D(), TestPlasCom2_AcousticPulseFarfield3D(), TestPlasCom2_AcousticPulsePeriodic2D(), TestPlasCom2_AcousticPulsePeriodic3D(), TestPlasCom2_AcousticPulseSlipwall2D(), TestPlasCom2_AcousticPulseSlipwall3D(), TestPlasCom2_AcousticPulseSponge2D(), TestPlasCom2_AcousticPulseSponge3D(), TestPlasCom2_APCurvilinearFarfield2D(), TestPlasCom2_APCurvilinearFarfield3D(), TestPlasCom2_APCurvilinearPeriodic2D(), TestPlasCom2_APCurvilinearPeriodic3D(), TestPlasCom2_APCurvilinearSlipwall2D(), TestPlasCom2_APCurvilinearSlipwall3D(), TestPlasCom2_APCurvilinearSponge2D(), TestPlasCom2_APCurvilinearSponge3D(), TestPlasCom2_APRectilinearFarfield2D(), TestPlasCom2_APRectilinearFarfield3D(), TestPlasCom2_APRectilinearPeriodic2D(), TestPlasCom2_APRectilinearPeriodic3D(), TestPlasCom2_APRectilinearSlipwall2D(), TestPlasCom2_APRectilinearSlipwall3D(), TestPlasCom2_APRectilinearSponge2D(), TestPlasCom2_APRectilinearSponge3D(), TestPlasCom2_PFCurvilinear2DX_Regression(), TestPlasCom2_PFCurvilinear2DY_Regression(), TestPlasCom2_PFCurvilinear3DZ_Regression(), TestPlasCom2_PFRectilinear2DX_Regression(), TestPlasCom2_PFRectilinear2DY_Regression(), TestPlasCom2_PFRectilinear3DZ_Regression(), TestPlasCom2_Poiseuille2DX_Regression(), TestPlasCom2_Poiseuille2DY_Regression(), TestPlasCom2_Poiseuille3DZ_Regression(), TestPlasCom2_Restart(), TestPlasCom2_Scalar_Advection2DX(), TestPlasCom2_Scalar_Advection2DY(), TestPlasCom2_Scalar_AdvectionDiffusion2DX(), TestPlasCom2_Scalar_AdvectionDiffusion2DY(), TestPlasCom2_ViscousShock2DX_Regression(), TestPlasCom2_ViscousShock2DY_Regression(), TestPlasCom2_ViscousShock3DZ_Regression(), TestPlasCom2_VSCurvilinear2DX_Regression(), TestPlasCom2_VSCurvilinear2DY_Regression(), TestPlasCom2_VSCurvilinear3DZ_Regression(), TestPlasCom2_VSRectilinear2DX_Regression(), TestPlasCom2_VSRectilinear2DY_Regression(), TestPlasCom2_VSRectilinear3DZ_Regression(), TestPlasCom2Input(), and TestPlasCom2Output().

◆ RecvAll()

int RecvAll ( )

Definition at line 428 of file COMM.C.

References CommunicatorObject::_rc, and CommunicatorObject::_recv_requests.

◆ Reduce() [1/2]

int Reduce ( DataType &  send,
DataType &  recv,
const comm::DataTypes dt,
const comm::Ops op,
int  root 
)
inline

Definition at line 273 of file COMM.H.

◆ Reduce() [2/2]

int Reduce ( std::vector< DataType > &  send,
std::vector< DataType > &  recv,
const comm::DataTypes dt,
const comm::Ops op,
int  root 
)
inline

Definition at line 284 of file COMM.H.

◆ RenewCommunicator()

int RenewCommunicator ( MPI_Comm &  inComm)

◆ ResolveDataType()

◆ ResolveOp()

MPI_Op ResolveOp ( const comm::Ops op)

Definition at line 885 of file COMM.C.

References ix::comm::MAXLOCOP, ix::comm::MAXOP, ix::comm::MINLOCOP, ix::comm::MINOP, ix::comm::PRODOP, and ix::comm::SUMOP.

Referenced by CommunicatorObject::Check().

Here is the caller graph for this function:

◆ SendAll()

int SendAll ( )

Definition at line 408 of file COMM.C.

References CommunicatorObject::_rc, and CommunicatorObject::_send_requests.

◆ SetCommunicator()

int SetCommunicator ( MPI_Comm &  inComm)
inline

Definition at line 86 of file COMM.H.

◆ SetErr()

◆ SetExit()

int SetExit ( int  errin)
inline

◆ SetRecv()

int SetRecv ( std::vector< DataType > &  recvbuf,
unsigned int  remote_rank,
int  tag = 0 
)
inline

Definition at line 198 of file COMM.H.

◆ SetSend()

int SetSend ( std::vector< DataType > &  sendbuf,
unsigned int  remote_rank,
int  tag = 0 
)
inline

Definition at line 189 of file COMM.H.

◆ Size()

◆ Split()

◆ StartRecv()

int StartRecv ( unsigned int  rid)

Definition at line 417 of file COMM.C.

References CommunicatorObject::_rc, and CommunicatorObject::_recv_requests.

◆ StartSend()

int StartSend ( unsigned int  rid)

◆ StreamBroadCast()

int StreamBroadCast ( DataType &  inData,
int  root_rank = 0 
)
inline

◆ StreamGather()

int StreamGather ( DataType &  sendval,
std::vector< DataType > &  recvvec,
int  root = 0 
)
inline

Definition at line 409 of file COMM.H.

◆ TakeOwnership()

void TakeOwnership ( )
inline

Definition at line 89 of file COMM.H.

◆ Union()

int Union ( std::vector< T > &  input_data,
std::vector< T > &  output_data 
)
inline

Definition at line 707 of file COMM.H.

◆ WaitAll()

int WaitAll ( )

Definition at line 266 of file COMM.C.

References CommunicatorObject::_rc, CommunicatorObject::_recv_requests, CommunicatorObject::_send_requests, CommunicatorObject::_status, and CommunicatorObject::ClearRequests().

Referenced by halo::CompleteReceives(), halo::CompleteSimpleReceives(), halo::ReceiveMessage(), and halo::Wait().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ WaitRecv()

int WaitRecv ( int  recvid)

◆ World()

MPI_Comm World ( )
inline

Definition at line 121 of file COMM.H.

Member Data Documentation

◆ _cart_comm

MPI_Comm _cart_comm
private

Definition at line 67 of file COMM.H.

Referenced by CommunicatorObject::InitializeCartesianTopology().

◆ _cart_coords

std::vector<int> _cart_coords
private

Definition at line 80 of file COMM.H.

Referenced by CommunicatorObject::InitializeCartesianTopology().

◆ _cart_dims

std::vector<int> _cart_dims
private

◆ _cart_periodic

std::vector<int> _cart_periodic
private

Definition at line 82 of file COMM.H.

Referenced by CommunicatorObject::InitializeCartesianTopology().

◆ _cart_rank

int _cart_rank
private

Definition at line 68 of file COMM.H.

Referenced by CommunicatorObject::InitializeCartesianTopology().

◆ _comm

◆ _error

int _error
private

◆ _initd

◆ _master

◆ _nproc

◆ _own_comm

◆ _rank

◆ _rc

◆ _recv_requests

◆ _recv_tags

std::vector<int> _recv_tags
private

◆ _send_requests

◆ _send_tags

std::vector<int> _send_tags
private

◆ _status

std::vector<MPI_Status> _status
private

Definition at line 79 of file COMM.H.

Referenced by CommunicatorObject::WaitAll(), and CommunicatorObject::WaitRecv().

◆ IntegerTypeID

MPI_Datatype IntegerTypeID

Definition at line 89 of file COMM.H.


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