Epetra_Distributor.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_DISTRIBUTOR_H
00033 #define EPETRA_DISTRIBUTOR_H
00034 
00036 
00048 #include "Epetra_Object.h"
00049 class Epetra_Distributor {
00050     
00051   public:
00053 
00054 
00055   virtual Epetra_Distributor * Clone() = 0;
00057   virtual ~Epetra_Distributor(){};
00059 
00060   
00062 
00063 
00064 
00075   virtual int CreateFromSends( const int & NumExportIDs,
00076                                const int * ExportPIDs,
00077              bool Deterministic,
00078                                int & NumRemoteIDs ) = 0;
00079 
00081 
00096   virtual int CreateFromRecvs( const int & NumRemoteIDs,
00097                                const int * RemoteGIDs,
00098              const int * RemotePIDs,
00099              bool Deterministic,
00100              int & NumExportIDs,
00101              int *& ExportGIDs,
00102              int *& ExportPIDs) = 0;
00104 
00106 
00107 
00109   virtual int Do( char * export_objs,
00110                   int obj_size,
00111                   int & len_import_objs,
00112                   char *& import_objs) = 0;
00113 
00115   virtual int DoReverse( char * export_objs,
00116                          int obj_size,
00117                          int & len_import_objs,
00118                          char *& import_objs ) = 0;
00119 
00121   virtual int DoPosts( char * export_objs, 
00122                        int obj_size,
00123                        int & len_import_objs,
00124                        char *& import_objs ) = 0;
00125 
00127   virtual int DoWaits() = 0;
00128 
00130   virtual int DoReversePosts( char * export_objs,
00131                               int obj_size,
00132                               int & len_import_objs,
00133                               char *& import_objs) = 0;
00134 
00136   virtual int DoReverseWaits() = 0;
00138 
00140 
00141 
00143   virtual int Do( char * export_objs,
00144                   int obj_size,
00145                   int *& sizes,
00146                   int & len_import_objs,
00147                   char *& import_objs) = 0;
00148 
00150   virtual int DoReverse( char * export_objs,
00151                          int obj_size,
00152                          int *& sizes,
00153                          int & len_import_objs,
00154                          char *& import_objs) = 0;
00155 
00157   virtual int DoPosts( char * export_objs,
00158                        int obj_size,
00159                        int *& sizes,
00160                        int & len_import_objs,
00161                        char *& import_objs) = 0;
00162 
00164   virtual int DoReversePosts( char * export_objs,
00165                               int obj_size,
00166                               int *& sizes,
00167                               int & len_import_objs,
00168                               char *& import_objs) = 0;
00169 
00171 
00173 
00174   virtual void Print(ostream & os) const = 0;
00176 };
00177 #endif /* EPETRA_DISTRIBUTOR_H */

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