MueLu Version of the Day
Loading...
Searching...
No Matches
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
19namespace MueLu {
20
27class 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;
34 typedef Xpetra::EpetraMapT<GO, NO> EpetraMap;
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:
121 Teuchos::RCP<Operator> xOp_;
122};
123
124} // namespace MueLu
125
126#endif
127
128#endif /* PACKAGES_MUELU_ADAPTERS_AZTECOO_MUELU_AZTECEPETRAOPERATOR_HPP_ */
Namespace for MueLu classes and methods.