Ifpack_Reordering Class Reference

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

#include <Ifpack_Reordering.h>

Inheritance diagram for Ifpack_Reordering:
Inheritance graph
[legend]

List of all members.

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<<.

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
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 <<.

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

Definition at line 88 of file Ifpack_Reordering.h.


The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Enumerations Friends
Generated on Wed Apr 13 10:05:24 2011 for IFPACK by  doxygen 1.6.3