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