`#include <Ifpack_Reordering.h>`

Inheritance diagram for Ifpack_Reordering:

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

**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:

Generated on Wed May 12 21:46:04 2010 for IFPACK by 1.4.7