56 int main(
int argc,
char *argv[])
59 MPI_Init(&argc,&argv);
64 if (Comm.
NumProc()!=3) cout <<
"Must be run on 3 MPI processes." << endl;
67 if (Comm.
MyPID()==0) cout <<
"Press any key to continue..."<< endl;
68 if (Comm.
MyPID()==0) cin >> tmp;
70 int NumMyElements = 2;
71 Epetra_Map SourceMap((
long long) -1, NumMyElements, 0, Comm);
78 SourceX[0] = (double) SourceMap.
GID64(0);
79 SourceX[1] = (double) SourceMap.
GID64(1);
85 long long TargetOneNumMyElements;
86 if (Comm.
MyPID()==0) TargetOneNumMyElements = NumGlobalElements;
87 else TargetOneNumMyElements = 0;
89 Epetra_Map TargetOneMap((
long long) -1, TargetOneNumMyElements, 0, Comm);
97 cout << TargetOneX << endl;
99 long long * GlobalElementList =
new long long[2];
100 GlobalElementList[0] = 5 - SourceMap.
GID64(0);
101 GlobalElementList[1] = 5 - SourceMap.
GID64(1);
103 Epetra_Map TargetTwoMap((
long long) -1, 2, GlobalElementList, 0, Comm);
111 cout << TargetTwoX << endl;
121 cout << TargetThreeX << endl;
127 TargetFourX.
Import(TargetThreeX, ExporterOne,
Add);
129 cout << TargetFourX << endl;
Epetra_Map: A class for partitioning vectors and matrices.
long long NumGlobalElements64() const
int NumProc() const
Returns total number of processes.
void Barrier() const
Epetra_MpiComm Barrier function.
Epetra_Export: This class builds an export object for efficient exporting of off-processor elements...
Epetra_Vector: A class for constructing and using dense vectors on a parallel computer.
Epetra_MpiComm: The Epetra MPI Communication Class.
Epetra_Import: This class builds an import object for efficient importing of off-processor elements...
long long GID64(int LID) const
int main(int argc, char *argv[])
int Import(const Epetra_SrcDistObject &A, const Epetra_Import &Importer, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0)
Imports an Epetra_DistObject using the Epetra_Import object.
Epetra_LocalMap: A class for replicating vectors and matrices across multiple processors.
int MyPID() const
Return my process ID.