Epetra Package Browser (Single Doxygen Collection)
Development
src
Epetra_Comm.h
Go to the documentation of this file.
1
/*
2
//@HEADER
3
// ************************************************************************
4
//
5
// Epetra: Linear Algebra Services Package
6
// Copyright 2011 Sandia Corporation
7
//
8
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9
// the U.S. Government retains certain rights in this software.
10
//
11
// Redistribution and use in source and binary forms, with or without
12
// modification, are permitted provided that the following conditions are
13
// met:
14
//
15
// 1. Redistributions of source code must retain the above copyright
16
// notice, this list of conditions and the following disclaimer.
17
//
18
// 2. Redistributions in binary form must reproduce the above copyright
19
// notice, this list of conditions and the following disclaimer in the
20
// documentation and/or other materials provided with the distribution.
21
//
22
// 3. Neither the name of the Corporation nor the names of the
23
// contributors may be used to endorse or promote products derived from
24
// this software without specific prior written permission.
25
//
26
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
//
38
// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
39
//
40
// ************************************************************************
41
//@HEADER
42
*/
43
44
#ifndef EPETRA_COMM_H
45
#define EPETRA_COMM_H
46
47
#include "
Epetra_ConfigDefs.h
"
48
#include "
Epetra_Object.h
"
49
50
class
Epetra_Distributor
;
51
class
Epetra_Directory
;
52
class
Epetra_BlockMap
;
53
55
73
class
EPETRA_LIB_DLL_EXPORT
Epetra_Comm
{
74
75
public
:
77
78
83
virtual
Epetra_Comm
* Clone()
const
= 0;
85
virtual
~Epetra_Comm
() {};
87
89
90
93
virtual
void
Barrier()
const
= 0;
95
97
98
110
virtual
int
Broadcast(
double
* MyVals,
int
Count,
int
Root)
const
= 0;
111
113
124
virtual
int
Broadcast(
int
* MyVals,
int
Count,
int
Root)
const
= 0;
125
127
138
virtual
int
Broadcast(
long
* MyVals,
int
Count,
int
Root)
const
= 0;
139
141
152
virtual
int
Broadcast(
long
long
* MyVals,
int
Count,
int
Root)
const
= 0;
153
155
166
virtual
int
Broadcast(
char
* MyVals,
int
Count,
int
Root)
const
= 0;
167
169
171
172
183
virtual
int
GatherAll(
double
* MyVals,
double
* AllVals,
int
Count)
const
= 0;
184
186
196
virtual
int
GatherAll(
int
* MyVals,
int
* AllVals,
int
Count)
const
= 0;
197
199
209
virtual
int
GatherAll(
long
* MyVals,
long
* AllVals,
int
Count)
const
= 0;
210
212
222
virtual
int
GatherAll(
long
long
* MyVals,
long
long
* AllVals,
int
Count)
const
= 0;
224
226
227
239
virtual
int
SumAll(
double
* PartialSums,
double
* GlobalSums,
int
Count)
const
= 0;
240
242
252
virtual
int
SumAll(
int
* PartialSums,
int
* GlobalSums,
int
Count)
const
= 0;
253
255
265
virtual
int
SumAll(
long
* PartialSums,
long
* GlobalSums,
int
Count)
const
= 0;
266
268
278
virtual
int
SumAll(
long
long
* PartialSums,
long
long
* GlobalSums,
int
Count)
const
= 0;
280
282
283
294
virtual
int
MaxAll(
double
* PartialMaxs,
double
* GlobalMaxs,
int
Count)
const
= 0;
295
297
307
virtual
int
MaxAll(
int
* PartialMaxs,
int
* GlobalMaxs,
int
Count)
const
= 0;
308
310
320
virtual
int
MaxAll(
long
* PartialMaxs,
long
* GlobalMaxs,
int
Count)
const
= 0;
321
323
333
virtual
int
MaxAll(
long
long
* PartialMaxs,
long
long
* GlobalMaxs,
int
Count)
const
= 0;
334
336
346
virtual
int
MinAll(
double
* PartialMins,
double
* GlobalMins,
int
Count)
const
= 0;
347
349
359
virtual
int
MinAll(
int
* PartialMins,
int
* GlobalMins,
int
Count)
const
= 0;
360
362
372
virtual
int
MinAll(
long
* PartialMins,
long
* GlobalMins,
int
Count)
const
= 0;
373
384
virtual
int
MinAll(
long
long
* PartialMins,
long
long
* GlobalMins,
int
Count)
const
= 0;
386
388
389
400
virtual
int
ScanSum(
double
* MyVals,
double
* ScanSums,
int
Count)
const
= 0;
401
403
413
virtual
int
ScanSum(
int
* MyVals,
int
* ScanSums,
int
Count)
const
= 0;
414
416
426
virtual
int
ScanSum(
long
* MyVals,
long
* ScanSums,
int
Count)
const
= 0;
427
429
439
virtual
int
ScanSum(
long
long
* MyVals,
long
long
* ScanSums,
int
Count)
const
= 0;
441
443
444
446
449
virtual
int
MyPID()
const
= 0;
450
452
455
virtual
int
NumProc()
const
= 0;
457
459
460
virtual
Epetra_Distributor
* CreateDistributor()
const
= 0;
463
virtual
Epetra_Directory
* CreateDirectory(
const
Epetra_BlockMap
& Map)
const
= 0;
465
467
468
virtual
void
PrintInfo(std::ostream & os)
const
= 0;
471
};
472
#endif
/* EPETRA_COMM_H */
Epetra_Comm
Epetra_Comm: The Epetra Communication Abstract Base Class.
Definition:
Epetra_Comm.h:73
Epetra_Directory
Epetra_Directory: This class is a pure virtual class whose interface allows Epetra_Map and Epetr_Bloc...
Definition:
Epetra_Directory.h:59
Epetra_BlockMap
Epetra_BlockMap: A class for partitioning block element vectors and matrices.
Definition:
Epetra_BlockMap.h:194
Epetra_ConfigDefs.h
Epetra_Distributor
Epetra_Distributor: The Epetra Gather/Scatter Setup Base Class.
Definition:
Epetra_Distributor.h:61
Epetra_Object.h
Epetra_Comm::~Epetra_Comm
virtual ~Epetra_Comm()
Epetra_Comm Destructor.
Definition:
Epetra_Comm.h:85
Generated by
1.8.16