#include <Ifpack_Reordering.h>
Public Member Functions | |
virtual | ~Ifpack_Reordering () |
Destructor. | |
virtual int | SetParameter (const string Name, const int Value)=0 |
Sets integer parameters `Name'. | |
virtual int | SetParameter (const string Name, const double Value)=0 |
Sets double parameters `Name'. | |
virtual int | SetParameters (Teuchos::ParameterList &List)=0 |
Sets all parameters. | |
virtual int | Compute (const Ifpack_Graph &Graph)=0 |
Computes all it is necessary to initialize the reordering object. | |
virtual int | Compute (const Epetra_RowMatrix &Matrix)=0 |
Computes all it is necessary to initialize the reordering object. | |
virtual bool | IsComputed () const =0 |
Returns true is the reordering object has been successfully initialized, false otherwise. | |
virtual int | Reorder (const int i) const =0 |
Returns the reordered index of row i . | |
virtual int | InvReorder (const int i) const =0 |
Returns the inverse reordered index of row i . | |
virtual int | P (const Epetra_MultiVector &Xorig, Epetra_MultiVector &X) const =0 |
Applies reordering to multivector Xorig, whose local length equals the number of local rows, stores reordered vector in X. | |
virtual int | Pinv (const Epetra_MultiVector &Xorig, Epetra_MultiVector &X) const =0 |
Applies inverse reordering to multivector Xorig, whose local length equals the number of local rows, stores inverse reordered vector in X. | |
virtual ostream & | Print (std::ostream &os) const =0 |
Prints basic information on iostream. This function is used by operator<<. |
Class Ifpack_Reordering is a pure virtual class that defines the structure of all Ifpack reordering.
The Ifpack_Graph object is used only by method Compute().
A typical code reads as follows (using for instance RCM reordering):
#include "Ifpack_Reordering.h" #include "Ifpack_RCMReordering.h" #include "Ifpack_Graph.h" // A is an Epetra_RowMatrix pointer. // Need to create a graph (which is a simple wrapper) // This required include file Ifpack_Graph_Epetra_RowMatrix.h Ifpack_Graph_Epetra_RowMatrix Graph(A); // Construct the object Ifpack_RCMReordering Reorder(Graph); // Compute the reordering. IFPACK_CHK_ERR(Reorder.Compute()); // Prints out some information cout << Reorder;
An Ifpack_Reordering object is a tool used by class Ifpack_Preconditioner, to reorder the localized matrix (with or without overlap). As its basic usage is for localized matrices, this class takes care of reordering the local rows only. It is also supposed that the input graph contains no singletons. This is not a limitation, as class Ifpack_AdditiveSchwarz will filter the graph using Ifpack_SingletonFilter before using reordering.
If IFPACK is configure with Teuchos support, method SetParameters() should be adopted. Otherwise, users can set parameters (one at-a-time), using methods SetParameter(), for integers and doubles.
Ifpack_Preconditioner objects overload the << operator. Derived classes should specify a Print() method, that will be used in operator <<.
virtual Ifpack_Reordering::~Ifpack_Reordering | ( | ) | [inline, virtual] |
Destructor.
virtual int Ifpack_Reordering::Compute | ( | const Epetra_RowMatrix & | Matrix | ) | [pure virtual] |
Computes all it is necessary to initialize the reordering object.
Implemented in Ifpack_AMDReordering, Ifpack_METISReordering, and Ifpack_RCMReordering.
virtual int Ifpack_Reordering::Compute | ( | const Ifpack_Graph & | Graph | ) | [pure virtual] |
Computes all it is necessary to initialize the reordering object.
Implemented in Ifpack_AMDReordering, Ifpack_METISReordering, and Ifpack_RCMReordering.
virtual int Ifpack_Reordering::InvReorder | ( | const int | i | ) | const [pure virtual] |
Returns the inverse reordered index of row i
.
Implemented in Ifpack_AMDReordering, Ifpack_METISReordering, and Ifpack_RCMReordering.
virtual bool Ifpack_Reordering::IsComputed | ( | ) | const [pure virtual] |
Returns true
is the reordering object has been successfully initialized, false otherwise.
Implemented in Ifpack_AMDReordering, Ifpack_METISReordering, and Ifpack_RCMReordering.
virtual int Ifpack_Reordering::P | ( | const Epetra_MultiVector & | Xorig, | |
Epetra_MultiVector & | X | |||
) | const [pure virtual] |
Applies reordering to multivector Xorig, whose local length equals the number of local rows, stores reordered vector in X.
Implemented in Ifpack_AMDReordering, Ifpack_METISReordering, and Ifpack_RCMReordering.
virtual int Ifpack_Reordering::Pinv | ( | const Epetra_MultiVector & | Xorig, | |
Epetra_MultiVector & | X | |||
) | const [pure virtual] |
Applies inverse reordering to multivector Xorig, whose local length equals the number of local rows, stores inverse reordered vector in X.
Implemented in Ifpack_AMDReordering, Ifpack_METISReordering, and Ifpack_RCMReordering.
virtual ostream& Ifpack_Reordering::Print | ( | std::ostream & | os | ) | const [pure virtual] |
Prints basic information on iostream. This function is used by operator<<.
Implemented in Ifpack_AMDReordering, Ifpack_METISReordering, and Ifpack_RCMReordering.
virtual int Ifpack_Reordering::Reorder | ( | const int | i | ) | const [pure virtual] |
Returns the reordered index of row i
.
Implemented in Ifpack_AMDReordering, Ifpack_METISReordering, and Ifpack_RCMReordering.
virtual int Ifpack_Reordering::SetParameter | ( | const string | Name, | |
const double | Value | |||
) | [pure virtual] |
Sets double parameters `Name'.
Implemented in Ifpack_AMDReordering, Ifpack_METISReordering, and Ifpack_RCMReordering.
virtual int Ifpack_Reordering::SetParameter | ( | const string | Name, | |
const int | Value | |||
) | [pure virtual] |
Sets integer parameters `Name'.
Implemented in Ifpack_AMDReordering, Ifpack_METISReordering, and Ifpack_RCMReordering.
virtual int Ifpack_Reordering::SetParameters | ( | Teuchos::ParameterList & | List | ) | [pure virtual] |
Sets all parameters.
Implemented in Ifpack_AMDReordering, Ifpack_METISReordering, and Ifpack_RCMReordering.