Ifpack_Reordering Class Reference

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

#include <Ifpack_Reordering.h>

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 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 59 of file Ifpack_Reordering.h.


Constructor & Destructor Documentation

virtual Ifpack_Reordering::~Ifpack_Reordering  )  [inline, virtual]
 

Destructor.

Definition at line 64 of file Ifpack_Reordering.h.


Member Function Documentation

virtual int Ifpack_Reordering::SetParameter const string  Name,
const int  Value
[pure virtual]
 

Sets integer parameters `Name'.

virtual int Ifpack_Reordering::SetParameter const string  Name,
const double  Value
[pure virtual]
 

Sets double parameters `Name'.

virtual int Ifpack_Reordering::Compute const Ifpack_Graph Graph  )  [pure virtual]
 

Computes all it is necessary to initialize the reordering object.

virtual int Ifpack_Reordering::Compute const Epetra_RowMatrix Matrix  )  [pure virtual]
 

Computes all it is necessary to initialize the reordering object.

virtual bool Ifpack_Reordering::IsComputed  )  const [pure virtual]
 

Returns true is the reordering object has been successfully initialized, false otherwise.

virtual int Ifpack_Reordering::Reorder const int  i  )  const [pure virtual]
 

Returns the reordered index of row i.

virtual int Ifpack_Reordering::InvReorder const int  i  )  const [pure virtual]
 

Returns the inverse reordered index of row i.

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.

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.

virtual ostream& Ifpack_Reordering::Print std::ostream &  os  )  const [pure virtual]
 

Prints basic information on iostream. This function is used by operator<<.


The documentation for this class was generated from the following file:
Generated on Thu Sep 18 12:37:31 2008 for Ifpack Package Browser (Single Doxygen Collection) by doxygen 1.3.9.1