EpetraExt  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Attributes | List of all members
EpetraExt::MultiMpiComm Class Reference

#include <EpetraExt_MultiMpiComm.h>

Inheritance diagram for EpetraExt::MultiMpiComm:
Inheritance graph
[legend]

Public Member Functions

virtual Epetra_CommSubDomainComm () const
 Get reference to split Communicator for sub-domain. More...
 
Epetra_MpiCommSubDomainMpiComm () const
 Get reference to split MPI Communicator for sub-domain. More...
 
virtual Epetra_CommTimeDomainComm () const
 Get reference to split Communicator for time domain. More...
 
Epetra_MpiCommTimeDomainMpiComm () const
 Get reference to split MPI Communicator for time domain. More...
 
virtual int NumSubDomains () const
 Return number of sub-domains that the global problem is split into. More...
 
virtual int SubDomainRank () const
 Return integer [0:numSubDomains-1} corresponding to this sub-domain's rank. More...
 
virtual int NumTimeDomains () const
 Return number of time domains that the global problem is split into. More...
 
virtual int TimeDomainRank () const
 Return integer [0:numTimeDomains-1} corresponding to this time-domain's rank. More...
 
virtual int NumTimeStepsOnDomain () const
 Return number of time steps, first step number, on time domain. More...
 
virtual int FirstTimeStepOnDomain () const
 
virtual int NumTimeSteps () const
 Return total number of time steps. More...
 
void ResetNumTimeSteps (int numTimeSteps)
 Reset total number of time steps, allowing time steps per domain to. More...
 
virtual Epetra_CommClone () const
 
virtual void Barrier () const
 
virtual int Broadcast (double *MyVals, int Count, int Root) const
 
virtual int Broadcast (int *MyVals, int Count, int Root) const
 
virtual int Broadcast (long *MyVals, int Count, int Root) const
 
virtual int Broadcast (long long *MyVals, int Count, int Root) const
 
virtual int Broadcast (char *MyVals, int Count, int Root) const
 
virtual int GatherAll (double *MyVals, double *AllVals, int Count) const
 
virtual int GatherAll (int *MyVals, int *AllVals, int Count) const
 
virtual int GatherAll (long *MyVals, long *AllVals, int Count) const
 
virtual int GatherAll (long long *MyVals, long long *AllVals, int Count) const
 
virtual int SumAll (double *PartialSums, double *GlobalSums, int Count) const
 
virtual int SumAll (int *PartialSums, int *GlobalSums, int Count) const
 
virtual int SumAll (long *PartialSums, long *GlobalSums, int Count) const
 
virtual int SumAll (long long *PartialSums, long long *GlobalSums, int Count) const
 
virtual int MaxAll (double *PartialMaxs, double *GlobalMaxs, int Count) const
 
virtual int MaxAll (int *PartialMaxs, int *GlobalMaxs, int Count) const
 
virtual int MaxAll (long *PartialMaxs, long *GlobalMaxs, int Count) const
 
virtual int MaxAll (long long *PartialMaxs, long long *GlobalMaxs, int Count) const
 
virtual int MinAll (double *PartialMins, double *GlobalMins, int Count) const
 
virtual int MinAll (int *PartialMins, int *GlobalMins, int Count) const
 
virtual int MinAll (long *PartialMins, long *GlobalMins, int Count) const
 
virtual int MinAll (long long *PartialMins, long long *GlobalMins, int Count) const
 
virtual int ScanSum (double *MyVals, double *ScanSums, int Count) const
 
virtual int ScanSum (int *MyVals, int *ScanSums, int Count) const
 
virtual int ScanSum (long *MyVals, long *ScanSums, int Count) const
 
virtual int ScanSum (long long *MyVals, long long *ScanSums, int Count) const
 
virtual int MyPID () const
 
virtual int NumProc () const
 
virtual Epetra_DistributorCreateDistributor () const
 
virtual Epetra_DirectoryCreateDirectory (const Epetra_BlockMap &Map) const
 
virtual void PrintInfo (std::ostream &os) const
 
- Public Member Functions inherited from EpetraExt::MultiComm
 MultiComm ()
 Constructor. More...
 
virtual ~MultiComm ()
 Destructor. More...
 
- Public Member Functions inherited from Epetra_Comm
virtual ~Epetra_Comm ()
 
- Public Member Functions inherited from Epetra_MpiComm
Epetra_MpiCommoperator= (const Epetra_MpiComm &Comm)
 
 Epetra_MpiComm (MPI_Comm comm)
 
 Epetra_MpiComm (const Epetra_MpiComm &Comm)
 
virtual ~Epetra_MpiComm ()
 
MPI_Comm Comm () const
 
int GetMpiTag () const
 
MPI_Comm GetMpiComm () const
 
void Print (std::ostream &os) const
 
int ReferenceCount () const
 
const Epetra_MpiCommDataDataPtr () const
 

Protected Attributes

Teuchos::RCP< Epetra_CommmyComm
 
Epetra_MpiCommsubComm
 
Epetra_MpiCommtimeComm
 
int numSubDomains
 
int numTimeDomains
 
int subDomainRank
 
int timeDomainRank
 
int numTimeSteps
 
int numTimeStepsOnDomain
 
int firstTimeStepOnDomain
 
 MultiMpiComm (MPI_Comm globalComm, int subDomainProcs, int numTimeSteps_=-1, const Teuchos::EVerbosityLevel verbLevel=Teuchos::VERB_DEFAULT)
 MultiMpiComm constuctor. More...
 
 MultiMpiComm (const Epetra_MpiComm &Comm, int numTimeSteps_, const Teuchos::EVerbosityLevel verbLevel=Teuchos::VERB_DEFAULT)
 MultiMpiComm constuctor, no parallelism over domains. More...
 
 MultiMpiComm (const MultiMpiComm &MMC)
 Copy constructor. More...
 
virtual ~MultiMpiComm ()
 Destructor. More...
 

Detailed Description

Definition at line 67 of file EpetraExt_MultiMpiComm.h.

Constructor & Destructor Documentation

EpetraExt::MultiMpiComm::MultiMpiComm ( MPI_Comm  globalComm,
int  subDomainProcs,
int  numTimeSteps_ = -1,
const Teuchos::EVerbosityLevel  verbLevel = Teuchos::VERB_DEFAULT 
)

MultiMpiComm constuctor.

Creates a MultiMpiComm object and communicators for the global and sub- problems.
Parameters
InglobalComm - MPI communciator (usually MPI_COMM_WORLD)
InsubDomainProcss - number of processors in each subdomain. This must divide evenly into the total number of processors of the globalComm.
InnumTimeSteps (Default=-1) - Piece of partitioning data needed specifically for parallel space-time project, corresponding to the total number of time steps.

Definition at line 48 of file EpetraExt_MultiMpiComm.cpp.

EpetraExt::MultiMpiComm::MultiMpiComm ( const Epetra_MpiComm Comm,
int  numTimeSteps_,
const Teuchos::EVerbosityLevel  verbLevel = Teuchos::VERB_DEFAULT 
)

MultiMpiComm constuctor, no parallelism over domains.

Creates a MultiMpiComm object for the simple case of no parallelism over
multiple steps.
Parameters
InEpetraMpiComm - Epetra_MpiComm communciator
InnumTimeSteps - Number of steps

Definition at line 123 of file EpetraExt_MultiMpiComm.cpp.

EpetraExt::MultiMpiComm::MultiMpiComm ( const MultiMpiComm MMC)

Copy constructor.

Definition at line 150 of file EpetraExt_MultiMpiComm.cpp.

EpetraExt::MultiMpiComm::~MultiMpiComm ( )
virtual

Destructor.

Definition at line 166 of file EpetraExt_MultiMpiComm.cpp.

Member Function Documentation

virtual Epetra_Comm& EpetraExt::MultiMpiComm::SubDomainComm ( ) const
inlinevirtual

Get reference to split Communicator for sub-domain.

Implements EpetraExt::MultiComm.

Definition at line 105 of file EpetraExt_MultiMpiComm.h.

Epetra_MpiComm& EpetraExt::MultiMpiComm::SubDomainMpiComm ( ) const
inline

Get reference to split MPI Communicator for sub-domain.

Definition at line 108 of file EpetraExt_MultiMpiComm.h.

virtual Epetra_Comm& EpetraExt::MultiMpiComm::TimeDomainComm ( ) const
inlinevirtual

Get reference to split Communicator for time domain.

Implements EpetraExt::MultiComm.

Definition at line 111 of file EpetraExt_MultiMpiComm.h.

Epetra_MpiComm& EpetraExt::MultiMpiComm::TimeDomainMpiComm ( ) const
inline

Get reference to split MPI Communicator for time domain.

Definition at line 114 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::NumSubDomains ( ) const
inlinevirtual

Return number of sub-domains that the global problem is split into.

Implements EpetraExt::MultiComm.

Definition at line 117 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::SubDomainRank ( ) const
inlinevirtual

Return integer [0:numSubDomains-1} corresponding to this sub-domain's rank.

Implements EpetraExt::MultiComm.

Definition at line 120 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::NumTimeDomains ( ) const
inlinevirtual

Return number of time domains that the global problem is split into.

Implements EpetraExt::MultiComm.

Definition at line 123 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::TimeDomainRank ( ) const
inlinevirtual

Return integer [0:numTimeDomains-1} corresponding to this time-domain's rank.

Implements EpetraExt::MultiComm.

Definition at line 126 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::NumTimeStepsOnDomain ( ) const
inlinevirtual

Return number of time steps, first step number, on time domain.

Implements EpetraExt::MultiComm.

Definition at line 129 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::FirstTimeStepOnDomain ( ) const
inlinevirtual

Implements EpetraExt::MultiComm.

Definition at line 130 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::NumTimeSteps ( ) const
inlinevirtual

Return total number of time steps.

Implements EpetraExt::MultiComm.

Definition at line 133 of file EpetraExt_MultiMpiComm.h.

void EpetraExt::MultiMpiComm::ResetNumTimeSteps ( int  numTimeSteps)
virtual

Reset total number of time steps, allowing time steps per domain to.

Implements EpetraExt::MultiComm.

Definition at line 172 of file EpetraExt_MultiMpiComm.cpp.

virtual Epetra_Comm* EpetraExt::MultiMpiComm::Clone ( ) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 139 of file EpetraExt_MultiMpiComm.h.

virtual void EpetraExt::MultiMpiComm::Barrier ( ) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 140 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::Broadcast ( double *  MyVals,
int  Count,
int  Root 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 141 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::Broadcast ( int *  MyVals,
int  Count,
int  Root 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 143 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::Broadcast ( long *  MyVals,
int  Count,
int  Root 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 145 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::Broadcast ( long long *  MyVals,
int  Count,
int  Root 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 147 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::Broadcast ( char *  MyVals,
int  Count,
int  Root 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 149 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::GatherAll ( double *  MyVals,
double *  AllVals,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 151 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::GatherAll ( int *  MyVals,
int *  AllVals,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 153 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::GatherAll ( long *  MyVals,
long *  AllVals,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 155 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::GatherAll ( long long *  MyVals,
long long *  AllVals,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 157 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::SumAll ( double *  PartialSums,
double *  GlobalSums,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 159 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::SumAll ( int *  PartialSums,
int *  GlobalSums,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 161 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::SumAll ( long *  PartialSums,
long *  GlobalSums,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 163 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::SumAll ( long long *  PartialSums,
long long *  GlobalSums,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 165 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::MaxAll ( double *  PartialMaxs,
double *  GlobalMaxs,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 167 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::MaxAll ( int *  PartialMaxs,
int *  GlobalMaxs,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 169 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::MaxAll ( long *  PartialMaxs,
long *  GlobalMaxs,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 171 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::MaxAll ( long long *  PartialMaxs,
long long *  GlobalMaxs,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 173 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::MinAll ( double *  PartialMins,
double *  GlobalMins,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 175 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::MinAll ( int *  PartialMins,
int *  GlobalMins,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 177 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::MinAll ( long *  PartialMins,
long *  GlobalMins,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 179 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::MinAll ( long long *  PartialMins,
long long *  GlobalMins,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 181 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::ScanSum ( double *  MyVals,
double *  ScanSums,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 183 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::ScanSum ( int *  MyVals,
int *  ScanSums,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 185 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::ScanSum ( long *  MyVals,
long *  ScanSums,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 187 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::ScanSum ( long long *  MyVals,
long long *  ScanSums,
int  Count 
) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 189 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::MyPID ( ) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 191 of file EpetraExt_MultiMpiComm.h.

virtual int EpetraExt::MultiMpiComm::NumProc ( ) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 192 of file EpetraExt_MultiMpiComm.h.

virtual Epetra_Distributor* EpetraExt::MultiMpiComm::CreateDistributor ( ) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 193 of file EpetraExt_MultiMpiComm.h.

virtual Epetra_Directory* EpetraExt::MultiMpiComm::CreateDirectory ( const Epetra_BlockMap Map) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 194 of file EpetraExt_MultiMpiComm.h.

virtual void EpetraExt::MultiMpiComm::PrintInfo ( std::ostream &  os) const
inlinevirtual

Reimplemented from Epetra_MpiComm.

Definition at line 196 of file EpetraExt_MultiMpiComm.h.

Member Data Documentation

Teuchos::RCP<Epetra_Comm> EpetraExt::MultiMpiComm::myComm
protected

Definition at line 196 of file EpetraExt_MultiMpiComm.h.

Epetra_MpiComm* EpetraExt::MultiMpiComm::subComm
protected

Definition at line 202 of file EpetraExt_MultiMpiComm.h.

Epetra_MpiComm* EpetraExt::MultiMpiComm::timeComm
protected

Definition at line 203 of file EpetraExt_MultiMpiComm.h.

int EpetraExt::MultiMpiComm::numSubDomains
protected

Definition at line 204 of file EpetraExt_MultiMpiComm.h.

int EpetraExt::MultiMpiComm::numTimeDomains
protected

Definition at line 205 of file EpetraExt_MultiMpiComm.h.

int EpetraExt::MultiMpiComm::subDomainRank
protected

Definition at line 206 of file EpetraExt_MultiMpiComm.h.

int EpetraExt::MultiMpiComm::timeDomainRank
protected

Definition at line 207 of file EpetraExt_MultiMpiComm.h.

int EpetraExt::MultiMpiComm::numTimeSteps
protected

Definition at line 209 of file EpetraExt_MultiMpiComm.h.

int EpetraExt::MultiMpiComm::numTimeStepsOnDomain
protected

Definition at line 210 of file EpetraExt_MultiMpiComm.h.

int EpetraExt::MultiMpiComm::firstTimeStepOnDomain
protected

Definition at line 211 of file EpetraExt_MultiMpiComm.h.


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