Ifpack_Container.h

00001 #ifndef IFPACK_CONTAINER_H
00002 #define IFPACK_CONTAINER_H
00003 
00004 class Epetra_RowMatrix;
00005 class Ifpack_Partitioner;
00006 namespace Teuchos {
00007   class ParameterList;
00008 }
00009 
00011 
00056 class Ifpack_Container {
00057 
00058 public:
00059 
00061   virtual ~Ifpack_Container() {};
00062 
00064   virtual int NumRows() const = 0;
00065 
00067   virtual int NumVectors() const = 0;
00068 
00070   virtual int SetNumVectors(const int i) = 0;
00071 
00073   virtual double& LHS(const int i, const int Vector = 0) = 0;
00074   
00076   virtual double& RHS(const int i, const int Vector = 0) = 0;
00077 
00079 
00088   virtual int& ID(const int i) = 0;
00089 
00091   virtual int SetMatrixElement(const int row, const int col,
00092                    const double value) = 0;
00093 
00095   virtual int Initialize() = 0;
00096 
00098   virtual int Compute(const Epetra_RowMatrix& A) = 0;
00099 
00101   virtual int SetParameters(Teuchos::ParameterList& List) = 0;
00102 
00104   virtual bool IsInitialized() const = 0;
00105 
00107   virtual bool IsComputed() const = 0;
00108 
00110   virtual int Apply() = 0;
00111 
00113   virtual int ApplyInverse() = 0;
00114 
00116   virtual const char* Label() const = 0;
00117 
00119   virtual double InitializeFlops() const = 0;
00120 
00122   virtual double ComputeFlops() const = 0;
00123 
00125   virtual double ApplyFlops() const = 0;
00126 
00128   virtual double ApplyInverseFlops() const = 0;
00129 
00131   virtual ostream& Print(std::ostream& os) const = 0;
00132 };
00133 
00134 inline ostream& operator<<(ostream& os, const Ifpack_Container& obj)
00135 {
00136   return(obj.Print(os));
00137 }
00138 
00139 #endif // IFPACK_CONTAINER_H

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