LifeV
AztecooOperatorAlgebra.hpp
Go to the documentation of this file.
1 /*
2  * AztecooOperator.hpp
3  *
4  * Created on: Sep 3, 2010
5  * Author: uvilla
6  */
7 
8 //@HEADER
9 
10 /*!
11  * \file AztecooOperator.hpp
12  * \author Umberto Villa
13  * \date 2010-09-03
14  * Interface to the AztecOO linear solver in Trilinos. This interface requires the user to provide
15  * the preconditioner in the form of a LinearOperator. If no preconditioner is provided,
16  * AztecOO will use unpreconditioned Krylov methods.
17  */
18 
19 #ifndef AZTECOO_OPERATOR_ALGEBRA_HPP
20 #define AZTECOO_OPERATOR_ALGEBRA_HPP
21 
22 #include <AztecOO.h>
23 #include <Teuchos_ParameterList.hpp>
24 
25 #include <lifev/core/linear_algebra/InvertibleOperator.hpp>
26 
27 namespace LifeV
28 {
29 namespace Operators
30 {
31 //! @class
32 /*! @brief InvertibleOperator interface to AztecOO in Trilinos.
33  * AztecooOperator will use the matrix-free Krylov methods in Trilinos, therefore both the operator and
34  * the preconditioner must be given in the form of LinearOperator.
35  *
36  * For a description of the class functionality, please refer to the parent class InvertibleOperator.
37  *
38  */
40 {
41 public:
43  typedef boost::shared_ptr<SolverType> SolverType_ptr;
44 
46 
48  {
49  return M_linSolver->NumIters();
50  }
51 
52 protected:
53 
54  virtual int doApplyInverse(const vector_Type& X, vector_Type& Y) const;
55  virtual void doSetOperator(){};
56  virtual void doSetPreconditioner(){};
57  virtual void doSetParameterList(){};
58 
60 };
61 
62 inline InvertibleOperator* createAztecooOperatorAlgebra() { return new AztecooOperatorAlgebra(); }
63 namespace
64 {
66 }
67 
68 
69 } // Namespace Operators
70 
71 } // Namespace LifeV
72 
73 #endif // AZTECOO_OPERATOR_HPP
InvertibleOperator * createAztecooOperatorAlgebra()
InvertibleOperator interface to AztecOO in Trilinos. AztecooOperator will use the matrix-free Krylov ...
boost::shared_ptr< SolverType > SolverType_ptr
void updateInverseJacobian(const UInt &iQuadPt)
Abstract class which defines the interface of an Invertible Linear Operator Algebra.
virtual int doApplyInverse(const vector_Type &X, vector_Type &Y) const