Ifpack_METISPartitioner.h

00001 #ifndef IFPACK_METISPARTITIONER_H
00002 #define IFPACK_METISPARTITIONER_H
00003 
00004 #include "Ifpack_ConfigDefs.h"
00005 #ifdef HAVE_IFPACK_TEUCHOS
00006 #include "Ifpack_Partitioner.h"
00007 #include "Ifpack_OverlappingPartitioner.h"
00008 #include "Teuchos_ParameterList.hpp"
00009 class Ifpack_Graph;
00010 class Epetra_Map;
00011 class Epetra_BlockMap;
00012 class Epetra_Import;
00013 
00015 
00024 class Ifpack_METISPartitioner : public Ifpack_OverlappingPartitioner {
00025 
00026 public:
00027 
00029   Ifpack_METISPartitioner(const Ifpack_Graph* Graph) :
00030     Ifpack_OverlappingPartitioner(Graph),
00031     UseSymmetricGraph_(true)
00032   {}
00033 
00035   virtual ~Ifpack_METISPartitioner() {};
00036 
00038   int SetPartitionParameters(Teuchos::ParameterList& List)
00039   {
00040     // `true' is the safest option, as singletons may still be
00041     // in the system, even after Ifpack_SingletonFilter (think
00042     // for example to an upper triangular matrix, which has one
00043     // singleton, and still has one after the elimination of 
00044     // the first one...)
00045     UseSymmetricGraph_ = List.get("partitioner: use symmetric graph", 
00046                   UseSymmetricGraph_);
00047 
00048     return(0);
00049   }
00050 
00052   int ComputePartitions();
00053 
00054 private:
00055   bool UseSymmetricGraph_;
00056 
00057 }; // class Ifpack_METISPartitioner
00058 
00059 #endif // HAVE_IFPACK_TEUCHOS
00060 #endif // IFPACK_METISPARTITIONER_H

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