Epetra_Comm.h

Go to the documentation of this file.
00001 
00002 //@HEADER
00003 /*
00004 ************************************************************************
00005 
00006               Epetra: Linear Algebra Services Package 
00007                 Copyright (2001) Sandia Corporation
00008 
00009 Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00010 license for use of this work by or on behalf of the U.S. Government.
00011 
00012 This library is free software; you can redistribute it and/or modify
00013 it under the terms of the GNU Lesser General Public License as
00014 published by the Free Software Foundation; either version 2.1 of the
00015 License, or (at your option) any later version.
00016  
00017 This library is distributed in the hope that it will be useful, but
00018 WITHOUT ANY WARRANTY; without even the implied warranty of
00019 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00020 Lesser General Public License for more details.
00021  
00022 You should have received a copy of the GNU Lesser General Public
00023 License along with this library; if not, write to the Free Software
00024 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00025 USA
00026 Questions? Contact Michael A. Heroux (maherou@sandia.gov) 
00027 
00028 ************************************************************************
00029 */
00030 //@HEADER
00031 
00032 #ifndef EPETRA_COMM_H
00033 #define EPETRA_COMM_H
00034 
00035 #include "Epetra_Object.h"
00036 
00037 class Epetra_Distributor;
00038 class Epetra_Directory;
00039 class Epetra_BlockMap;
00040 
00042 
00060 class Epetra_Comm {
00061     
00062   public:
00064 
00065 
00066 
00070   virtual Epetra_Comm * Clone() const = 0;
00072   virtual ~Epetra_Comm() {};
00074 
00076 
00077 
00078 
00080   virtual void Barrier() const = 0;
00082 
00084 
00085 
00086 
00097   virtual int Broadcast(double * MyVals, int Count, int Root) const = 0;
00098 
00100 
00111   virtual int Broadcast(int * MyVals, int Count, int Root) const = 0;
00112 
00114 
00125   virtual int Broadcast(long * MyVals, int Count, int Root) const = 0;
00126 
00128 
00139   virtual int Broadcast(char * MyVals, int Count, int Root) const = 0;
00140 
00142 
00144 
00145 
00146 
00156   virtual int GatherAll(double * MyVals, double * AllVals, int Count) const = 0;
00157 
00159 
00169   virtual int GatherAll(int * MyVals, int * AllVals, int Count) const = 0;
00170 
00172 
00182   virtual int GatherAll(long * MyVals, long * AllVals, int Count) const = 0;
00184 
00186 
00187 
00188 
00199   virtual int SumAll(double * PartialSums, double * GlobalSums, int Count) const = 0;
00200 
00202 
00212   virtual int SumAll(int * PartialSums, int * GlobalSums, int Count) const = 0;
00213 
00215 
00225   virtual int SumAll(long * PartialSums, long * GlobalSums, int Count) const = 0;
00227 
00229 
00230 
00231 
00241   virtual int MaxAll(double * PartialMaxs, double * GlobalMaxs, int Count) const = 0;
00242 
00244 
00254   virtual int MaxAll(int * PartialMaxs, int * GlobalMaxs, int Count) const = 0;
00255 
00257 
00267   virtual int MaxAll(long * PartialMaxs, long * GlobalMaxs, int Count) const = 0;
00268 
00270 
00280   virtual int MinAll(double * PartialMins, double * GlobalMins, int Count) const = 0;
00281 
00283 
00293   virtual int MinAll(int * PartialMins, int * GlobalMins, int Count) const = 0;
00294 
00296 
00306   virtual int MinAll(long * PartialMins, long * GlobalMins, int Count) const = 0;
00308 
00310 
00311 
00312 
00322   virtual int ScanSum(double * MyVals, double * ScanSums, int Count) const = 0;
00323 
00325 
00335   virtual int ScanSum(int * MyVals, int * ScanSums, int Count) const = 0;
00336 
00338 
00348   virtual int ScanSum(long * MyVals, long * ScanSums, int Count) const = 0;
00350 
00352 
00353     
00355 
00358   virtual int MyPID() const = 0;
00359   
00361 
00364   virtual int NumProc() const = 0;
00366 
00368 
00369 
00370   virtual Epetra_Distributor * CreateDistributor() const = 0;
00372   virtual Epetra_Directory * CreateDirectory(const Epetra_BlockMap & Map) const = 0;
00374 
00376 
00377 
00378   virtual void PrintInfo(ostream & os) const = 0;
00380 };
00381 #endif /* EPETRA_COMM_H */

Generated on Wed May 12 21:41:05 2010 for Epetra Package Browser (Single Doxygen Collection) by  doxygen 1.4.7