Ifpack_Preconditioner.h

00001 #ifndef IFPACK_PRECONDITIONER_H
00002 #define IFPACK_PRECONDITIONER_H
00003 
00004 #include "Ifpack_ConfigDefs.h"
00005 #include "Ifpack_CondestType.h"
00006 #include "Epetra_Object.h"
00007 #include "Epetra_Operator.h"
00008 #ifdef HAVE_IFPACK_TEUCHOS
00009 #include "Teuchos_ParameterList.hpp"
00010 #endif
00011 class Epetra_RowMatrix;
00012 
00014 
00096 class Ifpack_Preconditioner : public Epetra_Operator {
00097 
00098 public:
00099 
00100 #ifdef HAVE_IFPACK_TEUCHOS
00101 
00102   virtual int SetParameters(Teuchos::ParameterList& List) = 0;
00103 #endif
00104 
00106   virtual int Initialize() = 0;
00107 
00109   virtual bool IsInitialized() const = 0;
00110 
00112   virtual int Compute() = 0;
00113 
00115   virtual bool IsComputed() const = 0;
00116 
00118   virtual double Condest(const Ifpack_CondestType CT = Ifpack_Cheap,
00119                          const int MaxIters = 1550,
00120                          const double Tol = 1e-9,
00121              Epetra_RowMatrix* Matrix = 0) = 0;
00122 
00124   virtual double Condest() const = 0;
00125 
00127   virtual int ApplyInverse(const Epetra_MultiVector& X,
00128                Epetra_MultiVector& Y) const = 0;
00129 
00131   virtual const Epetra_RowMatrix& Matrix() const = 0;
00132 
00134   virtual int NumInitialize() const = 0;
00135 
00137   virtual int NumCompute() const = 0;
00138 
00140   virtual int NumApplyInverse() const = 0;
00141 
00143   virtual double InitializeTime() const = 0;
00144 
00146   virtual double ComputeTime() const = 0;
00147 
00149   virtual double ApplyInverseTime() const = 0;
00150 
00152   virtual double InitializeFlops() const = 0;
00153 
00155   virtual double ComputeFlops() const = 0;
00156 
00158   virtual double ApplyInverseFlops() const = 0;
00159 
00161   virtual ostream& Print(std::ostream& os) const = 0;
00162 
00163 };
00164 
00165 inline ostream& operator<<(ostream& os, const Ifpack_Preconditioner& obj)
00166 {
00167   return(obj.Print(os));
00168 }
00169 
00170 #endif // IFPACK_PRECONDITIONER_H

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