MueLu
Version of the Day
Loading...
Searching...
No Matches
MueLu_EpetraOperator.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 MUELU_EPETRAOPERATOR_HPP
11
#define MUELU_EPETRAOPERATOR_HPP
12
14
15
#include <Epetra_Operator.h>
16
#include "MueLu_Hierarchy.hpp"
17
// TODO: Kokkos headers
18
19
#if defined(HAVE_MUELU_SERIAL) and defined(HAVE_MUELU_EPETRA)
20
21
namespace
MueLu
{
22
27
class
EpetraOperator :
public
Epetra_Operator
{
28
typedef
double
SC;
29
typedef
int
LO;
30
typedef
int
GO;
31
typedef
Xpetra::EpetraNode NO;
32
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;
36
37
public
:
39
40
42
EpetraOperator(
const
RCP<Hierarchy>& H)
43
: Hierarchy_(H) {}
44
46
virtual
~EpetraOperator() {}
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::Hierarchy"
; }
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
RCP<Hierarchy> GetHierarchy()
const
{
return
Hierarchy_; }
117
119
120
private
:
121
RCP<Hierarchy> Hierarchy_;
122
};
123
124
}
// namespace MueLu
125
126
#endif
// HAVE_MUELU_EPETRA and HAVE_MUELU_SERIAL
127
128
#endif
// MUELU_EPETRAOPERATOR_HPP
Epetra_Comm
Epetra_Map
Epetra_MultiVector
Epetra_Operator
MueLu::Hierarchy
Provides methods to build a multigrid hierarchy and apply multigrid cycles.
Definition
MueLu_Hierarchy_decl.hpp:63
MueLu::Utilities
MueLu utility class.
Definition
MueLu_Utilities_decl.hpp:102
MueLu
Namespace for MueLu classes and methods.
Definition
MueLu_BrickAggregationFactory_decl.hpp:42
adapters
epetra
MueLu_EpetraOperator.hpp
Generated by
1.9.8