42 #ifndef EPETRAEXT_MULTISERIALCOMM_H
43 #define EPETRAEXT_MULTISERIALCOMM_H
47 #include "Epetra_SerialComm.h"
48 #include "Teuchos_RCP.hpp"
120 virtual int Broadcast(
double * MyVals,
int Count,
int Root)
const
121 {
return myComm->Broadcast( MyVals, Count, Root); };
122 virtual int Broadcast(
int * MyVals,
int Count,
int Root)
const
123 {
return myComm->Broadcast( MyVals, Count, Root); };
124 virtual int Broadcast(
long * MyVals,
int Count,
int Root)
const
125 {
return myComm->Broadcast( MyVals, Count, Root); };
126 virtual int Broadcast(
long long * MyVals,
int Count,
int Root)
const
127 {
return myComm->Broadcast( MyVals, Count, Root); };
128 virtual int Broadcast(
char * MyVals,
int Count,
int Root)
const
129 {
return myComm->Broadcast( MyVals, Count, Root); };
130 virtual int GatherAll(
double * MyVals,
double * AllVals,
int Count)
const
131 {
return myComm->GatherAll( MyVals, AllVals, Count); };
132 virtual int GatherAll(
int * MyVals,
int * AllVals,
int Count)
const
133 {
return myComm->GatherAll( MyVals, AllVals, Count); };
134 virtual int GatherAll(
long * MyVals,
long * AllVals,
int Count)
const
135 {
return myComm->GatherAll( MyVals, AllVals, Count); };
136 virtual int GatherAll(
long long* MyVals,
long long* AllVals,
int Count)
const
137 {
return myComm->GatherAll( MyVals, AllVals, Count); };
138 virtual int SumAll(
double * PartialSums,
double * GlobalSums,
int Count)
const
139 {
return myComm->SumAll( PartialSums, GlobalSums, Count); };
140 virtual int SumAll(
int * PartialSums,
int * GlobalSums,
int Count)
const
141 {
return myComm->SumAll( PartialSums, GlobalSums, Count); };
142 virtual int SumAll(
long * PartialSums,
long * GlobalSums,
int Count)
const
143 {
return myComm->SumAll( PartialSums, GlobalSums, Count); };
144 virtual int SumAll(
long long* PartialSums,
long long* GlobalSums,
int Count)
const
145 {
return myComm->SumAll( PartialSums, GlobalSums, Count); };
146 virtual int MaxAll(
double * PartialMaxs,
double * GlobalMaxs,
int Count)
const
147 {
return myComm->MaxAll( PartialMaxs, GlobalMaxs, Count); };
148 virtual int MaxAll(
int * PartialMaxs,
int * GlobalMaxs,
int Count)
const
149 {
return myComm->MaxAll( PartialMaxs, GlobalMaxs, Count); };
150 virtual int MaxAll(
long * PartialMaxs,
long * GlobalMaxs,
int Count)
const
151 {
return myComm->MaxAll( PartialMaxs, GlobalMaxs, Count); };
152 virtual int MaxAll(
long long* PartialMaxs,
long long* GlobalMaxs,
int Count)
const
153 {
return myComm->MaxAll( PartialMaxs, GlobalMaxs, Count); };
154 virtual int MinAll(
double * PartialMins,
double * GlobalMins,
int Count)
const
155 {
return myComm->MinAll( PartialMins, GlobalMins, Count); };
156 virtual int MinAll(
int * PartialMins,
int * GlobalMins,
int Count)
const
157 {
return myComm->MinAll( PartialMins, GlobalMins, Count); };
158 virtual int MinAll(
long * PartialMins,
long * GlobalMins,
int Count)
const
159 {
return myComm->MinAll( PartialMins, GlobalMins, Count); };
160 virtual int MinAll(
long long* PartialMins,
long long* GlobalMins,
int Count)
const
161 {
return myComm->MinAll( PartialMins, GlobalMins, Count); };
162 virtual int ScanSum(
double * MyVals,
double * ScanSums,
int Count)
const
163 {
return myComm->ScanSum( MyVals, ScanSums, Count); };
164 virtual int ScanSum(
int * MyVals,
int * ScanSums,
int Count)
const
165 {
return myComm->ScanSum(MyVals, ScanSums, Count); };
166 virtual int ScanSum(
long * MyVals,
long * ScanSums,
int Count)
const
167 {
return myComm->ScanSum(MyVals, ScanSums, Count); };
168 virtual int ScanSum(
long long* MyVals,
long long* ScanSums,
int Count)
const
169 {
return myComm->ScanSum(MyVals, ScanSums, Count); };
174 {
return myComm->CreateDirectory(Map); };
179 Teuchos::RCP<Epetra_Comm>
myComm;
virtual int ScanSum(int *MyVals, int *ScanSums, int Count) const
virtual int MinAll(long *PartialMins, long *GlobalMins, int Count) const
virtual int SumAll(long long *PartialSums, long long *GlobalSums, int Count) const
virtual int Broadcast(long *MyVals, int Count, int Root) const
virtual Epetra_Comm & SubDomainComm() const
Get reference to split Communicator for sub-domain.
virtual int MinAll(double *PartialMins, double *GlobalMins, int Count) const
virtual int NumProc() const
virtual int GatherAll(long *MyVals, long *AllVals, int Count) const
virtual int Broadcast(double *MyVals, int Count, int Root) const
virtual int NumTimeStepsOnDomain() const
Return number of time steps, first step number, on time domain.
virtual Epetra_Distributor * CreateDistributor() const
virtual int GatherAll(int *MyVals, int *AllVals, int Count) const
virtual int FirstTimeStepOnDomain() const
virtual int ScanSum(double *MyVals, double *ScanSums, int Count) const
virtual Epetra_Directory * CreateDirectory(const Epetra_BlockMap &Map) const
virtual int GatherAll(long long *MyVals, long long *AllVals, int Count) const
virtual int MaxAll(long *PartialMaxs, long *GlobalMaxs, int Count) const
virtual int MyPID() const
virtual int NumTimeSteps() const
Return total number of time steps.
MultiSerialComm(int numTimeSteps_=-1)
MultiSerialComm constuctor.
virtual int SubDomainRank() const
Return integer [0:numSubDomains-1} corresponding to this sub-domain's rank.
virtual int SumAll(int *PartialSums, int *GlobalSums, int Count) const
Teuchos::RCP< Epetra_Comm > myComm
virtual int MaxAll(int *PartialMaxs, int *GlobalMaxs, int Count) const
void ResetNumTimeSteps(int numTimeSteps)
Reset total number of time steps, allowing time steps per domain to.
virtual int Broadcast(long long *MyVals, int Count, int Root) const
virtual ~MultiSerialComm()
Destructor.
virtual int Broadcast(char *MyVals, int Count, int Root) const
virtual int ScanSum(long *MyVals, long *ScanSums, int Count) const
virtual Epetra_Comm & TimeDomainComm() const
Get reference to split Communicator for time domain.
virtual int MinAll(long long *PartialMins, long long *GlobalMins, int Count) const
virtual int MinAll(int *PartialMins, int *GlobalMins, int Count) const
virtual void Barrier() const
virtual int SumAll(double *PartialSums, double *GlobalSums, int Count) const
virtual int TimeDomainRank() const
Return integer [0:numTimeDomains-1} corresponding to this time-domain's rank.
Epetra_SerialComm * subComm
virtual void PrintInfo(std::ostream &os) const
virtual Epetra_Comm * Clone() const
virtual int NumSubDomains() const
Return number of sub-domains that the global problem is split into.
virtual int Broadcast(int *MyVals, int Count, int Root) const
virtual int MaxAll(double *PartialMaxs, double *GlobalMaxs, int Count) const
virtual int SumAll(long *PartialSums, long *GlobalSums, int Count) const
virtual int GatherAll(double *MyVals, double *AllVals, int Count) const
virtual int ScanSum(long long *MyVals, long long *ScanSums, int Count) const
virtual int MaxAll(long long *PartialMaxs, long long *GlobalMaxs, int Count) const
virtual int NumTimeDomains() const
Return number of time domains that the global problem is split into.