Ifpack_Reordering.h

00001 #ifndef IFPACK_REORDERING_H
00002 #define IFPACK_REORDERING_H
00003 
00004 #include "Ifpack_ConfigDefs.h"
00005 
00006 namespace Teuchos {
00007   class ParameterList;
00008 }
00009 class Epetra_MultiVector;
00010 class Ifpack_Graph;
00011 class Epetra_RowMatrix;
00012 
00014 
00059 class Ifpack_Reordering {
00060 
00061 public:
00062 
00064   virtual ~Ifpack_Reordering() {};
00065   
00067   virtual int SetParameter(const string Name, const int Value) = 0;
00068  
00070   virtual int SetParameter(const string Name, const double Value) = 0;
00071 
00072 #ifdef HAVE_IFPACK_TEUCHOS  
00073 
00074   virtual int SetParameters(Teuchos::ParameterList& List) = 0;
00075 #endif
00076 
00078   virtual int Compute(const Ifpack_Graph& Graph) = 0;
00079 
00081   virtual int Compute(const Epetra_RowMatrix& Matrix) = 0;
00082 
00084   virtual bool IsComputed() const = 0;
00085 
00087   virtual int Reorder(const int i) const = 0;
00088 
00090   virtual int InvReorder(const int i) const = 0;
00091 
00093   virtual int P(const Epetra_MultiVector& Xorig,
00094         Epetra_MultiVector& X) const = 0;
00095 
00097   virtual int Pinv(const Epetra_MultiVector& Xorig,
00098            Epetra_MultiVector& X) const = 0;
00099 
00101   virtual ostream& Print(std::ostream& os) const = 0;
00102 
00103 }; 
00104 
00105 inline ostream& operator<<(ostream& os, const Ifpack_Reordering& obj)
00106 {
00107   return(obj.Print(os));
00108 }
00109 
00110 #endif

Generated on Thu Sep 18 12:37:08 2008 for IFPACK by doxygen 1.3.9.1