00001 #ifndef IFPACK_USERPARTITIONER_H
00002 #define IFPACK_USERPARTITIONER_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 Epetra_Comm;
00010 class Ifpack_Graph;
00011 class Epetra_Map;
00012 class Epetra_BlockMap;
00013 class Epetra_Import;
00014
00016
00017 class Ifpack_UserPartitioner : public Ifpack_OverlappingPartitioner {
00018
00019 public:
00020
00022 Ifpack_UserPartitioner(const Ifpack_Graph* Graph) :
00023 Ifpack_OverlappingPartitioner(Graph),
00024 Map_(0)
00025 {}
00026
00028 virtual ~Ifpack_UserPartitioner() {};
00029
00031 int SetPartitionParameters(Teuchos::ParameterList& List)
00032 {
00033 Map_ = List.get("partitioner: map",Map_);
00034 if (Map_ == 0)
00035 IFPACK_CHK_ERR(-1);
00036
00037 return(0);
00038 }
00039
00041 int ComputePartitions();
00042
00043 private:
00044 int* Map_;
00045 };
00046
00047 #endif // HAVE_IFPACK_TEUCHOS
00048 #endif // IFPACK_USERPARTITIONER_H