46#ifndef MUELU_EPETRAOPERATOR_HPP
47#define MUELU_EPETRAOPERATOR_HPP
51#include <Epetra_Operator.h>
52#include "MueLu_Hierarchy.hpp"
55#if defined(HAVE_MUELU_SERIAL) and defined(HAVE_MUELU_EPETRA)
63 class EpetraOperator :
public Epetra_Operator {
67 typedef Xpetra::EpetraNode NO;
69 typedef Xpetra::Matrix<SC,LO,GO,NO> Matrix;
70 typedef MueLu::Hierarchy<SC,LO,GO,NO> Hierarchy;
71 typedef MueLu::Utilities<SC,LO,GO,NO> Utils;
79 EpetraOperator(
const RCP<Hierarchy>& H) : Hierarchy_(H) { }
82 virtual ~EpetraOperator() { }
86 int SetUseTranspose(
bool ) {
return -1; }
100 int Apply(
const Epetra_MultiVector& , Epetra_MultiVector& )
const {
return -1; }
114 int ApplyInverse(
const Epetra_MultiVector& X, Epetra_MultiVector& Y)
const;
122 double NormInf()
const {
return 0; }
129 const char * Label()
const {
return "MueLu::Hierarchy"; }
132 bool UseTranspose()
const {
return false; }
135 bool HasNormInf()
const {
return 0; }
138 const Epetra_Comm & Comm()
const;
141 const Epetra_Map & OperatorDomainMap()
const;
144 const Epetra_Map & OperatorRangeMap()
const;
152 RCP<Hierarchy> GetHierarchy()
const {
return Hierarchy_; }
159 RCP<Hierarchy> Hierarchy_;
Namespace for MueLu classes and methods.