43 #ifndef IFPACK_KRYLOV_H 
   44 #define IFPACK_KRYLOV_H 
   46 #if defined(Ifpack_SHOW_DEPRECATED_WARNINGS) 
   48 #warning "The Ifpack package is deprecated" 
   52 #include "Ifpack_ConfigDefs.h" 
   53 #include "Ifpack_Preconditioner.h" 
   54 #include "Teuchos_RefCountPtr.hpp" 
   55 #include "Ifpack_PointRelaxation.h" 
   56 #include "Ifpack_BlockRelaxation.h" 
   57 #include "Ifpack_SparseContainer.h" 
   58 #include "Ifpack_DenseContainer.h" 
   59 #include "Ifpack_Amesos.h" 
   60 #ifdef HAVE_IFPACK_AZTECOO 
   76 #ifdef HAVE_IFPACK_AZTECOO 
   81 #ifdef HAVE_IFPACK_EPETRAEXT 
   82 class EpetraExt_PointToBlockDiagPermute;
 
  115     UseTranspose_ = UseTranspose_in;
 
  156   virtual const char * Label()
 const 
  158     return(Label_.c_str());
 
  164     return(UseTranspose_);
 
  186     return(IsInitialized_);
 
  204   virtual double Condest(
const Ifpack_CondestType CT = Ifpack_Cheap,
 
  205                          const int MaxIters = 1550,
 
  206                          const double Tol = 1e-9,
 
  219   virtual std::ostream& 
Print(std::ostream & os) 
const;
 
  228     return(NumInitialize_);
 
  240     return(NumApplyInverse_);
 
  246     return(InitializeTime_);
 
  252     return(ComputeTime_);
 
  258     return(ApplyInverseTime_);
 
  270     return(ComputeFlops_);
 
  276     return(ApplyInverseFlops_);
 
  285   virtual void SetLabel();
 
  307   mutable int NumApplyInverse_;
 
  309   double InitializeTime_;
 
  313   mutable double ApplyInverseTime_;
 
  315   double ComputeFlops_;
 
  317   mutable double ApplyInverseFlops_;
 
  328   int PreconditionerType_;
 
  334   double DampingParameter_;
 
  343   bool ComputeCondest_;
 
  354   long long NumGlobalRows_;
 
  356   long long NumGlobalNonzeros_;
 
  358   Teuchos::RefCountPtr<Epetra_Operator> Operator_;
 
  360   Teuchos::RefCountPtr<Epetra_RowMatrix> Matrix_;
 
  365   Teuchos::RefCountPtr<Epetra_Time> Time_;
 
  367   bool ZeroStartingSolution_;
 
  370 #ifdef HAVE_IFPACK_AZTECOO 
  371   Teuchos::RCP<AztecOO> AztecSolver_;
 
  375   Teuchos::RCP<Ifpack_Preconditioner> IfpackPrec_;
 
  380 #endif // IFPACK_KRYLOV_H 
virtual int NumInitialize() const 
Returns the number of calls to Initialize(). 
virtual double ComputeFlops() const 
Returns the number of flops in the computation phase. 
virtual int Initialize()
Computes all it is necessary to initialize the preconditioner. 
virtual int Apply(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const 
Applies the matrix to an Epetra_MultiVector. 
virtual int NumCompute() const 
Returns the number of calls to Compute(). 
virtual double Condest() const 
Returns the condition number estimate, or -1.0 if not computed. 
virtual double InitializeTime() const 
Returns the time spent in Initialize(). 
virtual double ComputeTime() const 
Returns the time spent in Compute(). 
virtual bool HasNormInf() const 
Returns true if the this object can provide an approximate Inf-norm, false otherwise. 
virtual int NumApplyInverse() const 
Returns the number of calls to ApplyInverse(). 
virtual double InitializeFlops() const 
Returns the number of flops in the initialization phase. 
virtual double NormInf() const 
Returns the infinity norm of the global matrix (not implemented) 
virtual int Compute()
Computes the preconditioners. 
virtual int SetUseTranspose(bool UseTranspose_in)
Ifpack_Preconditioner: basic class for preconditioning in Ifpack. 
virtual int SetParameters(Teuchos::ParameterList &List)
Sets all the parameters for the preconditioner. 
virtual std::ostream & Print(std::ostream &os) const 
Prints object to an output stream. 
virtual const Epetra_Map & OperatorDomainMap() const 
Returns the Epetra_Map object associated with the domain of this operator. 
virtual bool IsInitialized() const 
Returns true if the preconditioner has been successfully initialized, false otherwise. 
virtual bool IsComputed() const 
Returns true if the preconditioner has been successfully computed. 
virtual const Epetra_Map & OperatorRangeMap() const 
Returns the Epetra_Map object associated with the range of this operator. 
Ifpack_Krylov: class for smoothing with Krylov solvers in Ifpack. 
virtual const Epetra_RowMatrix & Matrix() const 
Returns a pointer to the matrix to be preconditioned. 
virtual bool UseTranspose() const 
Returns the current UseTranspose setting. 
virtual const Epetra_Comm & Comm() const 
Returns a pointer to the Epetra_Comm communicator associated with this operator. 
virtual double ApplyInverseFlops() const 
Returns the number of flops for the application of the preconditioner. 
virtual double ApplyInverseTime() const 
Returns the time spent in ApplyInverse(). 
virtual ~Ifpack_Krylov()
Destructor. 
virtual int ApplyInverse(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const 
Applies the preconditioner to X, returns the result in Y.