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;
00127 
00129 
00130 
00131 
00141   virtual int GatherAll(double * MyVals, double * AllVals, int Count) const = 0;
00142 
00144 
00154   virtual int GatherAll(int * MyVals, int * AllVals, int Count) const = 0;
00155 
00157 
00167   virtual int GatherAll(long * MyVals, long * AllVals, int Count) const = 0;
00169 
00171 
00172 
00173 
00184   virtual int SumAll(double * PartialSums, double * GlobalSums, int Count) const = 0;
00185 
00187 
00197   virtual int SumAll(int * PartialSums, int * GlobalSums, int Count) const = 0;
00198 
00200 
00210   virtual int SumAll(long * PartialSums, long * GlobalSums, int Count) const = 0;
00212 
00214 
00215 
00216 
00226   virtual int MaxAll(double * PartialMaxs, double * GlobalMaxs, int Count) const = 0;
00227 
00229 
00239   virtual int MaxAll(int * PartialMaxs, int * GlobalMaxs, int Count) const = 0;
00240 
00242 
00252   virtual int MaxAll(long * PartialMaxs, long * GlobalMaxs, int Count) const = 0;
00253 
00255 
00265   virtual int MinAll(double * PartialMins, double * GlobalMins, int Count) const = 0;
00266 
00268 
00278   virtual int MinAll(int * PartialMins, int * GlobalMins, int Count) const = 0;
00279 
00281 
00291   virtual int MinAll(long * PartialMins, long * GlobalMins, int Count) const = 0;
00293 
00295 
00296 
00297 
00307   virtual int ScanSum(double * MyVals, double * ScanSums, int Count) const = 0;
00308 
00310 
00320   virtual int ScanSum(int * MyVals, int * ScanSums, int Count) const = 0;
00321 
00323 
00333   virtual int ScanSum(long * MyVals, long * ScanSums, int Count) const = 0;
00335 
00337 
00338     
00340 
00343   virtual int MyPID() const = 0;
00344   
00346 
00349   virtual int NumProc() const = 0;
00351 
00353 
00354 
00355   virtual Epetra_Distributor * CreateDistributor() const = 0;
00357   virtual Epetra_Directory * CreateDirectory(const Epetra_BlockMap & Map) const = 0;
00359 
00361 
00362 
00363   virtual void PrintInfo(ostream & os) const = 0;
00365 };
00366 #endif /* EPETRA_COMM_H */

Generated on Thu Sep 18 12:37:57 2008 for Epetra Package Browser (Single Doxygen Collection) by doxygen 1.3.9.1