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
00041
00042
00043
00044
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 };
00058
00059 #endif // HAVE_IFPACK_TEUCHOS
00060 #endif // IFPACK_METISPARTITIONER_H