IFPACK  Development
 All Classes Namespaces Files Functions Variables Enumerations Friends Pages
Public Member Functions | List of all members
Ifpack_Reordering Class Referenceabstract

Ifpack_Reordering: basic class for reordering for a Ifpack_Graph object. More...

#include <Ifpack_Reordering.h>

Inheritance diagram for Ifpack_Reordering:
Inheritance graph
[legend]

Public Member Functions

virtual ~Ifpack_Reordering ()
 Destructor.
 
virtual int SetParameter (const std::string Name, const int Value)=0
 Sets integer parameters `Name'.
 
virtual int SetParameter (const std::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 std::ostream & Print (std::ostream &os) const =0
 Prints basic information on iostream. This function is used by operator<<.
 

Detailed Description

Ifpack_Reordering: basic class for reordering for a Ifpack_Graph object.

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
// Construct the object
// 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 <<.

Author
Marzio Sala, SNL 9214.
Date
Last modified: Oct-04.

Definition at line 107 of file Ifpack_Reordering.h.


The documentation for this class was generated from the following file: