Ifpack_Partitioner.h

00001 #ifndef IFPACK_PARTITIONER_H
00002 #define IFPACK_PARTITIONER_H
00003 
00004 #include "Ifpack_ConfigDefs.h"
00005 #include "Teuchos_ParameterList.hpp"
00006 class Epetra_Comm;
00007 class Ifpack_Graph;
00008 class Epetra_Map;
00009 class Epetra_BlockMap;
00010 class Epetra_Import;
00011 
00013 
00119 class Ifpack_Partitioner {
00120 
00121 public:
00122 
00124   virtual ~Ifpack_Partitioner() {};
00125 
00127   virtual int NumLocalParts() const = 0;
00128 
00130   virtual int OverlappingLevel() const = 0;
00131 
00133 
00140   virtual int operator() (int MyRow) const = 0;
00141 
00143   virtual int operator() (int i, int j) const = 0;
00144 
00146   virtual int NumRowsInPart(const int Part) const = 0;
00147     
00149   virtual int RowsInPart(const int Part, int* List) const = 0;
00150   
00152   virtual const int* NonOverlappingPartition() const = 0;
00153 
00155   virtual int SetParameters(Teuchos::ParameterList& List) = 0;
00156 
00158   virtual int Compute() = 0;
00159 
00161   virtual bool IsComputed() = 0;
00162 
00164   virtual ostream& Print(std::ostream& os) const = 0;
00165 
00166 }; // class Ifpack_Partitioner
00167 
00168 inline ostream& operator<<(ostream& os, const Ifpack_Partitioner& obj)
00169 {
00170   return(obj.Print(os));
00171 }
00172 
00173 #endif // IFPACK_PARTITIONER_H

Generated on Tue Oct 20 12:48:54 2009 for IFPACK by doxygen 1.4.7