43 #ifndef IFPACK_METISREORDERING_H 44 #define IFPACK_METISREORDERING_H 48 #include "Epetra_RowMatrix.h" 49 #include "Teuchos_ParameterList.hpp" 50 #include "Teuchos_RefCountPtr.hpp" 73 if (Name ==
"partitioner: use symmetric graph")
79 virtual int SetParameter(
const std::string Name,
const double Value)
106 virtual int Reorder(
const int i)
const;
120 virtual std::ostream&
Print(std::ostream& os)
const;
136 #endif // IFPACK_METISREORDERING_H
virtual int Reorder(const int i) const
Returns the reordered index of row i.
T & get(ParameterList &l, const std::string &name)
virtual int SetParameters(Teuchos::ParameterList &List)
Sets all the parameters for the partitioner (none at moment).
Ifpack_METISReordering: A class to reorder a graph using METIS.
Ifpack_METISReordering()
Constructor.
bool IsComputed_
If true, the reordering has been successfully computed.
virtual int P(const Epetra_MultiVector &Xorig, Epetra_MultiVector &X) const
Applies reordering to multivector Xorig, whose local length equals the number of local rows...
Ifpack_Reordering: basic class for reordering for a Ifpack_Graph object.
virtual int SetParameter(const std::string Name, const double Value)
Sets double parameters ‘Name’.
int NumMyRows_
Number of local rows in the graph.
bool UseSymmetricGraph_
If true, the graph has to be symmetrized before calling METIS.
adjacency_list< vecS, vecS, undirectedS, no_property, property< edge_weight_t, double > > Graph
virtual int Compute(const Ifpack_Graph &Graph)
Computes all it is necessary to initialize the reordering object.
virtual ~Ifpack_METISReordering()
Destructor.
std::vector< int > Reorder_
Contains the reordering.
virtual bool IsComputed() const
Returns true is the reordering object has been successfully initialized, false otherwise.
Ifpack_Graph: a pure virtual class that defines graphs for IFPACK.
virtual int SetParameter(const std::string Name, const int Value)
Sets integer parameters ‘Name’.
virtual std::ostream & Print(std::ostream &os) const
Prints basic information on iostream. This function is used by operator<<.
std::vector< int > InvReorder_
Contains the inverse reordering.
virtual int Pinv(const Epetra_MultiVector &Xorig, Epetra_MultiVector &X) const
Applies inverse reordering to multivector Xorig, whose local length equals the number of local rows...
virtual int InvReorder(const int i) const
Returns the inverse reordered index of row i.