MueLu  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MueLu_AztecEpetraOperator.hpp
Go to the documentation of this file.
1 
2 #ifndef PACKAGES_MUELU_ADAPTERS_AZTECOO_MUELU_AZTECEPETRAOPERATOR_HPP_
3 #define PACKAGES_MUELU_ADAPTERS_AZTECOO_MUELU_AZTECEPETRAOPERATOR_HPP_
4 
5 #include <Epetra_Operator.h>
6 
7 #include "Xpetra_Operator.hpp"
8 
9 #if defined(HAVE_MUELU_SERIAL) and defined(HAVE_MUELU_EPETRA)
10 
11 namespace MueLu {
12 
19  class AztecEpetraOperator : public Epetra_Operator {
20  typedef double SC;
21  typedef int LO;
22  typedef int GO;
23  typedef Xpetra::EpetraNode NO;
24 
25  typedef Xpetra::Map<LO,GO,NO> Map;
27  typedef Xpetra::Operator<SC,LO,GO,NO> Operator;
28 
29  public:
30 
32 
33 
35  AztecEpetraOperator(const Teuchos::RCP<Operator>& Op) : xOp_(Op) { }
36 
38  virtual ~AztecEpetraOperator() { }
39 
41 
42  int SetUseTranspose(bool /* UseTransposeBool */) { return -1; }
43 
45 
46 
48 
56  int Apply(const Epetra_MultiVector& /* X */, Epetra_MultiVector& /* Y */) const { return -1; }
57 
59 
70  int ApplyInverse(const Epetra_MultiVector& X, Epetra_MultiVector& Y) const;
71 
73  /* Returns the quantity \f$ \| A \|_\infty\f$ such that
74  \f[\| A \|_\infty = \max_{1\lei\lem} \sum_{j=1}^n |a_{ij}| \f].
75 
76  \warning This method must not be called unless HasNormInf() returns true.
77  */
78  double NormInf() const { return 0; }
80 
82 
83 
85  const char * Label() const { return "MueLu::AztecEpetraOperator"; }
86 
88  bool UseTranspose() const { return false; }
89 
91  bool HasNormInf() const { return 0; }
92 
94  const Epetra_Comm & Comm() const;
95 
97  const Epetra_Map & OperatorDomainMap() const;
98 
100  const Epetra_Map & OperatorRangeMap() const;
101 
103 
105 
106 
108  Teuchos::RCP<Operator> GetOperator() const { return xOp_; }
109 
111 
112 
113  private:
114 
116 
117  };
118 
119 } // namespace
120 
121 #endif
122 
123 #endif /* PACKAGES_MUELU_ADAPTERS_AZTECOO_MUELU_AZTECEPETRAOPERATOR_HPP_ */
GlobalOrdinal GO
LocalOrdinal LO
EpetraMapT< int, typename Xpetra::Map< int, int >::node_type > EpetraMap
Scalar SC
Node NO