43#ifndef IFPACK_KRYLOV_H
44#define IFPACK_KRYLOV_H
48#include "Teuchos_RefCountPtr.hpp"
54#ifdef HAVE_IFPACK_AZTECOO
70#ifdef HAVE_IFPACK_AZTECOO
75#ifdef HAVE_IFPACK_EPETRAEXT
199 const int MaxIters = 1550,
200 const double Tol = 1e-9,
213 virtual std::ostream&
Print(std::ostream & os)
const;
337 bool ComputeCondest_;
354 Teuchos::RefCountPtr<Epetra_RowMatrix>
Matrix_;
359 Teuchos::RefCountPtr<Epetra_Time>
Time_;
364#ifdef HAVE_IFPACK_AZTECOO
365 Teuchos::RCP<AztecOO> AztecSolver_;
Ifpack_CondestType
Ifpack_CondestType: enum to define the type of condition number estimate.
@ Ifpack_Cheap
cheap estimate
Ifpack_Krylov: class for smoothing with Krylov solvers in Ifpack.
Teuchos::RefCountPtr< Epetra_Operator > Operator_
Pointers to the matrix as an Epetra_Operator.
Teuchos::RefCountPtr< Epetra_RowMatrix > Matrix_
Pointers to the matrix as an Epetra_RowMatrix.
double ComputeFlops_
Contains the number of flops for Compute().
virtual double NormInf() const
Returns the infinity norm of the global matrix (not implemented)
Ifpack_Krylov & operator=(const Ifpack_Krylov &)
operator = (PRIVATE, should not be used)
virtual const Epetra_Map & OperatorRangeMap() const
Returns the Epetra_Map object associated with the range of this operator.
Teuchos::RefCountPtr< Epetra_Time > Time_
Time object to track timing.
double Tolerance_
Residual Tolerance.
virtual int Compute()
Computes the preconditioners.
bool IsRowMatrix_
If true, the Operator_ is an Epetra_RowMatrix.
int SolverType_
Solver - 0 for CG, 1 for GMRES.
virtual bool IsComputed() const
Returns true if the preconditioner has been successfully computed.
double ComputeTime_
Contains the time for all successful calls to Compute().
virtual double ApplyInverseTime() const
Returns the time spent in ApplyInverse().
bool IsComputed_
If true, the preconditioner has been computed successfully.
virtual double Condest() const
Returns the condition number estimate, or -1.0 if not computed.
virtual double InitializeFlops() const
Returns the number of flops in the initialization phase.
bool ZeroStartingSolution_
If true, the starting solution is always the zero vector.
double DampingParameter_
Damping parameter for inner preconditioner.
virtual int SetParameters(Teuchos::ParameterList &List)
Sets all the parameters for the preconditioner.
int NumCompute_
Contains the number of successful call to Compute().
Ifpack_Krylov(const Ifpack_Krylov &)
Copy constructor (PRIVATE, should not be used)
virtual ~Ifpack_Krylov()
Destructor.
bool UseTranspose_
If true, use the tranpose of Matrix_.
int Iterations_
Max number of iterations.
virtual bool HasNormInf() const
Returns true if the this object can provide an approximate Inf-norm, false otherwise.
virtual bool UseTranspose() const
Returns the current UseTranspose setting.
long long NumGlobalRows_
Number of global rows.
virtual std::ostream & Print(std::ostream &os) const
Prints object to an output stream.
int NumMyRows_
Number of local rows.
int BlockSize_
Block Size (for block relaxation)
Teuchos::RCP< Ifpack_Preconditioner > IfpackPrec_
virtual int ApplyInverse(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Applies the preconditioner to X, returns the result in Y.
virtual int Apply(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Applies the matrix to an Epetra_MultiVector.
virtual int SetUseTranspose(bool UseTranspose_in)
virtual double ComputeTime() const
Returns the time spent in Compute().
virtual int NumInitialize() const
Returns the number of calls to Initialize().
int NumInitialize_
Contains the number of successful calls to Initialize().
virtual bool IsInitialized() const
Returns true if the preconditioner has been successfully initialized, false otherwise.
double ApplyInverseFlops_
Contain sthe number of flops for ApplyInverse().
bool IsInitialized_
If true, the preconditioner has been computed successfully.
long long NumGlobalNonzeros_
Number of global nonzeros.
virtual int Initialize()
Computes all it is necessary to initialize the preconditioner.
virtual int NumApplyInverse() const
Returns the number of calls to ApplyInverse().
double ApplyInverseTime_
Contains the time for all successful calls to ApplyInverse().
virtual const Epetra_RowMatrix & Matrix() const
Returns a pointer to the matrix to be preconditioned.
virtual const char * Label() const
double InitializeTime_
Contains the time for all successful calls to Initialize().
std::string Label_
Contains the label of this object.
virtual const Epetra_Comm & Comm() const
Returns a pointer to the Epetra_Comm communicator associated with this operator.
int NumApplyInverse_
Contains the number of successful call to ApplyInverse().
int NumMyNonzeros_
Number of local nonzeros.
virtual void SetLabel()
Sets the label.
double Condest_
Contains the estimated condition number.
int NumSweeps_
Number of GS or Jacobi sweeps.
virtual double ApplyInverseFlops() const
Returns the number of flops for the application of the preconditioner.
int PreconditionerType_
Preconditioner - 0 for none, 1 for Jacobi, 2 for GS, 3 for SGS.
virtual int NumCompute() const
Returns the number of calls to Compute().
virtual double InitializeTime() const
Returns the time spent in Initialize().
virtual const Epetra_Map & OperatorDomainMap() const
Returns the Epetra_Map object associated with the domain of this operator.
virtual double ComputeFlops() const
Returns the number of flops in the computation phase.
Ifpack_Preconditioner: basic class for preconditioning in Ifpack.