Ifpack_Partitioner.h

00001 #ifndef IFPACK_PARTITIONER_H
00002 #define IFPACK_PARTITIONER_H
00003 
00004 #include "Ifpack_ConfigDefs.h"
00005 #ifdef HAVE_IFPACK_TEUCHOS
00006 #include "Teuchos_ParameterList.hpp"
00007 class Epetra_Comm;
00008 class Ifpack_Graph;
00009 class Epetra_Map;
00010 class Epetra_BlockMap;
00011 class Epetra_Import;
00012 
00014 
00120 class Ifpack_Partitioner {
00121 
00122 public:
00123 
00125   virtual ~Ifpack_Partitioner() {};
00126 
00128   virtual int NumLocalParts() const = 0;
00129 
00131   virtual int OverlappingLevel() const = 0;
00132 
00134 
00141   virtual int operator() (int MyRow) const = 0;
00142 
00144   virtual int operator() (int i, int j) const = 0;
00145 
00147   virtual int NumRowsInPart(const int Part) const = 0;
00148     
00150   virtual int RowsInPart(const int Part, int* List) const = 0;
00151   
00153   virtual const int* NonOverlappingPartition() const = 0;
00154 
00156   virtual int SetParameters(Teuchos::ParameterList& List) = 0;
00157 
00159   virtual int Compute() = 0;
00160 
00162   virtual bool IsComputed() = 0;
00163 
00165   virtual ostream& Print(std::ostream& os) const = 0;
00166 
00167 }; // class Ifpack_Partitioner
00168 
00169 inline ostream& operator<<(ostream& os, const Ifpack_Partitioner& obj)
00170 {
00171   return(obj.Print(os));
00172 }
00173 
00174 #endif // HAVE_IFPACK_TEUCHOS
00175 #endif // IFPACK_PARTITIONER_H

Generated on Thu Sep 18 12:37:08 2008 for IFPACK by doxygen 1.3.9.1