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 // @HEADER
2 // *****************************************************************************
3 // MueLu: A package for multigrid based preconditioning
4 //
5 // Copyright 2012 NTESS and the MueLu contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef PACKAGES_MUELU_ADAPTERS_AZTECOO_MUELU_AZTECEPETRAOPERATOR_HPP_
11 #define PACKAGES_MUELU_ADAPTERS_AZTECOO_MUELU_AZTECEPETRAOPERATOR_HPP_
12 
13 #include <Epetra_Operator.h>
14 
15 #include "Xpetra_Operator.hpp"
16 
17 #if defined(HAVE_MUELU_SERIAL) and defined(HAVE_MUELU_EPETRA)
18 
19 namespace MueLu {
20 
27 class AztecEpetraOperator : public Epetra_Operator {
28  typedef double SC;
29  typedef int LO;
30  typedef int GO;
31  typedef Xpetra::EpetraNode NO;
32 
33  typedef Xpetra::Map<LO, GO, NO> Map;
35  typedef Xpetra::Operator<SC, LO, GO, NO> Operator;
36 
37  public:
39 
40 
42  AztecEpetraOperator(const Teuchos::RCP<Operator>& Op)
43  : xOp_(Op) {}
44 
46  virtual ~AztecEpetraOperator() {}
47 
49 
50  int SetUseTranspose(bool /* UseTransposeBool */) { return -1; }
51 
53 
54 
56 
64  int Apply(const Epetra_MultiVector& /* X */, Epetra_MultiVector& /* Y */) const { return -1; }
65 
67 
78  int ApplyInverse(const Epetra_MultiVector& X, Epetra_MultiVector& Y) const;
79 
81  /* Returns the quantity \f$ \| A \|_\infty\f$ such that
82  \f[\| A \|_\infty = \max_{1\lei\lem} \sum_{j=1}^n |a_{ij}| \f].
83 
84  \warning This method must not be called unless HasNormInf() returns true.
85  */
86  double NormInf() const { return 0; }
88 
90 
91 
93  const char* Label() const { return "MueLu::AztecEpetraOperator"; }
94 
96  bool UseTranspose() const { return false; }
97 
99  bool HasNormInf() const { return 0; }
100 
102  const Epetra_Comm& Comm() const;
103 
105  const Epetra_Map& OperatorDomainMap() const;
106 
108  const Epetra_Map& OperatorRangeMap() const;
109 
111 
113 
114 
116  Teuchos::RCP<Operator> GetOperator() const { return xOp_; }
117 
119 
120  private:
122 };
123 
124 } // namespace MueLu
125 
126 #endif
127 
128 #endif /* PACKAGES_MUELU_ADAPTERS_AZTECOO_MUELU_AZTECEPETRAOPERATOR_HPP_ */
GlobalOrdinal GO
EpetraMapT< int, EpetraNode > EpetraMap
LocalOrdinal LO
Scalar SC
Node NO