10#ifndef MUELU_EPETRAOPERATOR_HPP
11#define MUELU_EPETRAOPERATOR_HPP
15#include <Epetra_Operator.h>
16#include "MueLu_Hierarchy.hpp"
19#if defined(HAVE_MUELU_SERIAL) and defined(HAVE_MUELU_EPETRA)
27class EpetraOperator :
public Epetra_Operator {
31 typedef Xpetra::EpetraNode NO;
33 typedef Xpetra::Matrix<SC, LO, GO, NO> Matrix;
34 typedef MueLu::Hierarchy<SC, LO, GO, NO> Hierarchy;
35 typedef MueLu::Utilities<SC, LO, GO, NO> Utils;
42 EpetraOperator(
const RCP<Hierarchy>& H)
46 virtual ~EpetraOperator() {}
50 int SetUseTranspose(
bool ) {
return -1; }
64 int Apply(
const Epetra_MultiVector& , Epetra_MultiVector& )
const {
return -1; }
78 int ApplyInverse(
const Epetra_MultiVector& X, Epetra_MultiVector& Y)
const;
86 double NormInf()
const {
return 0; }
93 const char* Label()
const {
return "MueLu::Hierarchy"; }
96 bool UseTranspose()
const {
return false; }
99 bool HasNormInf()
const {
return 0; }
102 const Epetra_Comm& Comm()
const;
105 const Epetra_Map& OperatorDomainMap()
const;
108 const Epetra_Map& OperatorRangeMap()
const;
116 RCP<Hierarchy> GetHierarchy()
const {
return Hierarchy_; }
121 RCP<Hierarchy> Hierarchy_;
Namespace for MueLu classes and methods.