MueLu Version of the Day
Loading...
Searching...
No Matches
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
11namespace 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;
26 typedef Xpetra::EpetraMapT<GO,NO> EpetraMap;
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
115 Teuchos::RCP<Operator> xOp_;
116
117 };
118
119} // namespace
120
121#endif
122
123#endif /* PACKAGES_MUELU_ADAPTERS_AZTECOO_MUELU_AZTECEPETRAOPERATOR_HPP_ */
Namespace for MueLu classes and methods.