| 
    Nektar++
    
   | 
 
A global linear system. More...
#include <CommMpi.h>


Public Member Functions | |
| CommMpi (int narg, char *arg[]) | |
| virtual | ~CommMpi () | 
| MPI_Comm | GetComm () | 
  Public Member Functions inherited from Nektar::LibUtilities::Comm | |
| Comm (int narg, char *arg[]) | |
| virtual | ~Comm () | 
| void | Finalise () | 
| int | GetSize () | 
| Returns number of processes.  More... | |
| int | GetRank () | 
| const std::string & | GetType () const | 
| void | Block () | 
| Block execution until all processes reach this point.  More... | |
| void | Send (int pProc, Array< OneD, NekDouble > &pData) | 
| void | Send (int pProc, Array< OneD, int > &pData) | 
| void | Send (int pProc, std::vector< unsigned int > &pData) | 
| void | Recv (int pProc, Array< OneD, NekDouble > &pData) | 
| void | Recv (int pProc, Array< OneD, int > &pData) | 
| void | Recv (int pProc, std::vector< unsigned int > &pData) | 
| void | SendRecv (int pSendProc, Array< OneD, NekDouble > &pSendData, int pRecvProc, Array< OneD, NekDouble > &pRecvData) | 
| void | SendRecv (int pSendProc, Array< OneD, int > &pSendData, int pRecvProc, Array< OneD, int > &pRecvData) | 
| void | SendRecvReplace (int pSendProc, int pRecvProc, Array< OneD, NekDouble > &pSendData) | 
| void | SendRecvReplace (int pSendProc, int pRecvProc, Array< OneD, int > &pSendData) | 
| void | AllReduce (NekDouble &pData, enum ReduceOperator pOp) | 
| void | AllReduce (int &pData, enum ReduceOperator pOp) | 
| void | AllReduce (Array< OneD, NekDouble > &pData, enum ReduceOperator pOp) | 
| void | AllReduce (Array< OneD, int > &pData, enum ReduceOperator pOp) | 
| void | AllReduce (std::vector< unsigned int > &pData, enum ReduceOperator pOp) | 
| void | AlltoAll (Array< OneD, NekDouble > &pSendData, Array< OneD, NekDouble > &pRecvData) | 
| void | AlltoAll (Array< OneD, int > &pSendData, Array< OneD, int > &pRecvData) | 
| void | AlltoAllv (Array< OneD, NekDouble > &pSendData, Array< OneD, int > &pSendDataSizeMap, Array< OneD, int > &pSendDataOffsetMap, Array< OneD, NekDouble > &pRecvData, Array< OneD, int > &pRecvDataSizeMap, Array< OneD, int > &pRecvDataOffsetMap) | 
| void | AlltoAllv (Array< OneD, int > &pSendData, Array< OneD, int > &pSendDataSizeMap, Array< OneD, int > &pSendDataOffsetMap, Array< OneD, int > &pRecvData, Array< OneD, int > &pRecvDataSizeMap, Array< OneD, int > &pRecvDataOffsetMap) | 
| void | SplitComm (int pRows, int pColumns) | 
| Splits this communicator into a grid of size pRows*pColumns and creates row and column communicators. By default the communicator is a single row.  More... | |
| CommSharedPtr | GetRowComm () | 
| Retrieve the row communicator to which this process belongs.  More... | |
| CommSharedPtr | GetColumnComm () | 
| Retrieve the column communicator to which this process belongs.  More... | |
| bool | TreatAsRankZero (void) | 
| bool | RemoveExistingFiles (void) | 
Static Public Member Functions | |
| static CommSharedPtr | create (int narg, char *arg[]) | 
| Creates an instance of this class.  More... | |
Static Public Attributes | |
| static std::string | className | 
| Name of class.  More... | |
Protected Member Functions | |
| virtual void | v_Finalise () | 
| virtual int | v_GetRank () | 
| virtual void | v_Block () | 
| virtual bool | v_TreatAsRankZero (void) | 
| virtual void | v_Send (int pProc, Array< OneD, NekDouble > &pData) | 
| virtual void | v_Send (int pProc, Array< OneD, int > &pData) | 
| virtual void | v_Send (int pProc, std::vector< unsigned int > &pData) | 
| virtual void | v_Recv (int pProc, Array< OneD, NekDouble > &pData) | 
| virtual void | v_Recv (int pProc, Array< OneD, int > &pData) | 
| virtual void | v_Recv (int pProc, std::vector< unsigned int > &pData) | 
| virtual void | v_SendRecv (int pSendProc, Array< OneD, NekDouble > &pSendData, int pRecvProc, Array< OneD, NekDouble > &pRecvData) | 
| virtual void | v_SendRecv (int pSendProc, Array< OneD, int > &pSendData, int pRecvProc, Array< OneD, int > &pRecvData) | 
| virtual void | v_SendRecvReplace (int pSendProc, int pRecvProc, Array< OneD, NekDouble > &pSendData) | 
| virtual void | v_SendRecvReplace (int pSendProc, int pRecvProc, Array< OneD, int > &pSendData) | 
| virtual void | v_AllReduce (NekDouble &pData, enum ReduceOperator pOp) | 
| virtual void | v_AllReduce (int &pData, enum ReduceOperator pOp) | 
| virtual void | v_AllReduce (Array< OneD, NekDouble > &pData, enum ReduceOperator pOp) | 
| virtual void | v_AllReduce (Array< OneD, int > &pData, enum ReduceOperator pOp) | 
| virtual void | v_AllReduce (std::vector< unsigned int > &pData, enum ReduceOperator pOp) | 
| virtual void | v_AlltoAll (Array< OneD, NekDouble > &pSendData, Array< OneD, NekDouble > &pRecvData) | 
| virtual void | v_AlltoAll (Array< OneD, int > &pSendData, Array< OneD, int > &pRecvData) | 
| virtual void | v_AlltoAllv (Array< OneD, NekDouble > &pSendData, Array< OneD, int > &pSendDataSizeMap, Array< OneD, int > &pSendDataOffsetMap, Array< OneD, NekDouble > &pRecvData, Array< OneD, int > &pRecvDataSizeMap, Array< OneD, int > &pRecvDataOffsetMap) | 
| virtual void | v_AlltoAllv (Array< OneD, int > &pSendData, Array< OneD, int > &pSendDataSizeMap, Array< OneD, int > &pSendDataOffsetMap, Array< OneD, int > &pRecvData, Array< OneD, int > &pRecvDataSizeMap, Array< OneD, int > &pRecvDataOffsetMap) | 
| virtual void | v_SplitComm (int pRows, int pColumns) | 
  Protected Member Functions inherited from Nektar::LibUtilities::Comm | |
| Comm () | |
| virtual bool | v_RemoveExistingFiles (void) | 
Private Member Functions | |
| CommMpi (MPI_Comm pComm) | |
Private Attributes | |
| MPI_Comm | m_comm | 
| int | m_rank | 
Additional Inherited Members | |
  Protected Attributes inherited from Nektar::LibUtilities::Comm | |
| int | m_size | 
| Number of processes.  More... | |
| std::string | m_type | 
| Type of communication.  More... | |
| CommSharedPtr | m_commRow | 
| Row communicator.  More... | |
| CommSharedPtr | m_commColumn | 
| Column communicator.  More... | |
| Nektar::LibUtilities::CommMpi::CommMpi | ( | int | narg, | 
| char * | arg[] | ||
| ) | 
Definition at line 56 of file CommMpi.cpp.
References ASSERTL0, m_comm, m_rank, Nektar::LibUtilities::Comm::m_size, and Nektar::LibUtilities::Comm::m_type.
Referenced by v_SplitComm().
      
  | 
  virtual | 
Definition at line 98 of file CommMpi.cpp.
      
  | 
  private | 
Definition at line 84 of file CommMpi.cpp.
References m_comm, m_rank, Nektar::LibUtilities::Comm::m_size, and Nektar::LibUtilities::Comm::m_type.
      
  | 
  inlinestatic | 
Creates an instance of this class.
Definition at line 65 of file CommMpi.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr().
| MPI_Comm Nektar::LibUtilities::CommMpi::GetComm | ( | ) | 
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 396 of file CommMpi.cpp.
References ASSERTL0, Nektar::LibUtilities::Comm::GetSize(), m_comm, Nektar::LibUtilities::ReduceMax, Nektar::LibUtilities::ReduceMin, and Nektar::LibUtilities::ReduceSum.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 426 of file CommMpi.cpp.
References ASSERTL0, Nektar::LibUtilities::Comm::GetSize(), m_comm, Nektar::LibUtilities::ReduceMax, Nektar::LibUtilities::ReduceMin, and Nektar::LibUtilities::ReduceSum.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 456 of file CommMpi.cpp.
References ASSERTL0, Nektar::LibUtilities::Comm::GetSize(), m_comm, Nektar::LibUtilities::ReduceMax, Nektar::LibUtilities::ReduceMin, and Nektar::LibUtilities::ReduceSum.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 486 of file CommMpi.cpp.
References ASSERTL0, Nektar::LibUtilities::Comm::GetSize(), m_comm, Nektar::LibUtilities::ReduceMax, Nektar::LibUtilities::ReduceMin, and Nektar::LibUtilities::ReduceSum.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 516 of file CommMpi.cpp.
References ASSERTL0, Nektar::LibUtilities::Comm::GetSize(), m_comm, Nektar::LibUtilities::ReduceMax, Nektar::LibUtilities::ReduceMin, and Nektar::LibUtilities::ReduceSum.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 546 of file CommMpi.cpp.
References ASSERTL0, Nektar::LibUtilities::Comm::GetSize(), and m_comm.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 564 of file CommMpi.cpp.
References ASSERTL0, Nektar::LibUtilities::Comm::GetSize(), and m_comm.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 582 of file CommMpi.cpp.
References ASSERTL0, and m_comm.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 606 of file CommMpi.cpp.
References ASSERTL0, and m_comm.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 152 of file CommMpi.cpp.
References m_comm.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 116 of file CommMpi.cpp.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 128 of file CommMpi.cpp.
References m_rank.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 187 of file CommMpi.cpp.
References m_comm.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 232 of file CommMpi.cpp.
References m_comm.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 277 of file CommMpi.cpp.
References m_comm.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 161 of file CommMpi.cpp.
References m_comm, and MPISYNC.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 206 of file CommMpi.cpp.
References m_comm, and MPISYNC.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 251 of file CommMpi.cpp.
References m_comm, and MPISYNC.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 296 of file CommMpi.cpp.
References ASSERTL0, and m_comm.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 323 of file CommMpi.cpp.
References ASSERTL0, and m_comm.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 349 of file CommMpi.cpp.
References ASSERTL0, and m_comm.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 372 of file CommMpi.cpp.
References ASSERTL0, and m_comm.
      
  | 
  protectedvirtual | 
Processes are considered as a grid of size pRows*pColumns. Comm objects are created corresponding to the rows and columns of this grid. The row and column to which this process belongs is stored in m_commRow and m_commColumn.
Implements Nektar::LibUtilities::Comm.
Definition at line 634 of file CommMpi.cpp.
References ASSERTL0, CommMpi(), m_comm, Nektar::LibUtilities::Comm::m_commColumn, Nektar::LibUtilities::Comm::m_commRow, m_rank, and Nektar::LibUtilities::Comm::m_size.
      
  | 
  protectedvirtual | 
Implements Nektar::LibUtilities::Comm.
Definition at line 136 of file CommMpi.cpp.
References m_rank.
      
  | 
  static | 
Name of class.
      
  | 
  private | 
Definition at line 132 of file CommMpi.h.
Referenced by CommMpi(), GetComm(), v_AllReduce(), v_AlltoAll(), v_AlltoAllv(), v_Block(), v_Recv(), v_Send(), v_SendRecv(), v_SendRecvReplace(), and v_SplitComm().
      
  | 
  private | 
Definition at line 133 of file CommMpi.h.
Referenced by CommMpi(), v_GetRank(), v_SplitComm(), and v_TreatAsRankZero().
 1.8.8