Stokhos Package Browser (Single Doxygen Collection)
Version of the Day
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
src
epetra
Stokhos_MLPrecOp.hpp
Go to the documentation of this file.
1
// @HEADER
2
// *****************************************************************************
3
// Stokhos Package
4
//
5
// Copyright 2009 NTESS and the Stokhos contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
35
/* ******************************************************************** */
36
/* See the file COPYRIGHT for a complete copyright notice, contact */
37
/* person and disclaimer. */
38
/* ******************************************************************** */
39
40
#ifndef STOKHOS_MLPRECOP_HPP
41
#define STOKHOS_MLPRECOP_HPP
42
43
#include "
Stokhos_ConfigDefs.h
"
44
45
#ifdef HAVE_STOKHOS_ML
46
47
#include "
Epetra_ConfigDefs.h
"
48
#ifdef HAVE_MPI
49
#include <mpi.h>
50
#include "
Epetra_MpiComm.h
"
51
#else
52
#include "
Epetra_SerialComm.h
"
53
#endif
54
#include "
Epetra_Map.h
"
55
#include "
Epetra_Vector.h
"
56
#include "
Epetra_CrsMatrix.h
"
57
#include "
Epetra_SerialDenseMatrix.h
"
58
#include "
Epetra_MultiVector.h
"
59
#include "ml_include.h"
60
#include "ml_MultiLevelPreconditioner.h"
61
//#include "Epetra_LinearProblem.h"
62
//#include "Epetra_Object.h"
63
64
#include "
Teuchos_Array.hpp
"
65
66
68
73
namespace
Stokhos{
74
75
class
MLPrecOp:
public
virtual
Epetra_Operator
{
76
77
public
:
78
80
MLPrecOp(
const
Epetra_CrsMatrix
& mean_op,
const
Teuchos::Array<double>
& norms,
const
Epetra_Comm
& Comm,
const
Epetra_Map
& DMap,
const
Epetra_Map
& RMap);
82
~MLPrecOp(){}
85
86
88
99
int
SetUseTranspose (
bool
/* UseTheTranspose */
) {
return
-1; }
101
103
105
110
int
Apply(
const
Epetra_MultiVector
& X,
Epetra_MultiVector
& Y)
const
{
return
-1;};
111
113
121
// int ApplyInverse(const Epetra_MultiVector& X, Epetra_MultiVector& Y, int iBlockSize = WKC) const;
122
int
ApplyInverse(
const
Epetra_MultiVector
& X,
Epetra_MultiVector
& Y)
const
;
123
124
//int ApplyInverse(const Epetra_MultiVector& X, Epetra_MultiVector& Y) const;
125
127
/* Returns the quantity \f$ \| A \|_\infty\f$ such that
128
\f[\| A \|_\infty = \max_{1\lei\lem} \sum_{j=1}^n |a_{ij}| \f].
129
130
\warning This method must not be called unless HasNormInf() returns true.
131
*/
132
double
NormInf()
const
{
return
(0.0);};
134
136
138
const
char
* Label()
const
{
return
(Label_);};
139
141
bool
UseTranspose()
const
{
return
(
false
);};
142
144
bool
HasNormInf()
const
{
return
(
false
);};
145
147
const
Epetra_Comm
& Comm()
const
{
return
(Comm_);};
148
150
const
Epetra_Map
& OperatorDomainMap()
const
{
return
(DomainMap_);};
152
const
Epetra_Map
& OperatorRangeMap()
const
{
return
(RangeMap_);};
154
155
private
:
157
//StochGalerkinFiniteDiffSystem(const StochGalerkinFiniteDiffSystem& RHS) :
158
// Comm_(RHS.Comm()),
159
// DomainMap_(RHS.OperatorDomainMap()),
160
// RangeMap_(RHS.OperatorRangeMap())
161
//{ }
162
164
MLPrecOp& operator=(
const
MLPrecOp&)
165
{
166
return
(*
this
);
167
}
168
170
const
Epetra_Comm
& Comm_;
171
const
char
* Label_;
173
const
Epetra_Map
& DomainMap_;
175
const
Epetra_Map
& RangeMap_;
176
177
const
Teuchos::Array<double>
& norms_;
178
179
ML_Epetra::MultiLevelPreconditioner* MLPrec;
180
181
};
182
}
183
184
#endif // HAVE_STOKHOS_ML
185
186
#endif
/* SACADO_STOCHGAL_DIFF_H*/
187
Epetra_MultiVector
Epetra_Map
Epetra_SerialComm.h
Epetra_Comm
Epetra_SerialDenseMatrix.h
Epetra_MpiComm.h
Teuchos_Array.hpp
Epetra_CrsMatrix
Epetra_Map.h
Epetra_MultiVector.h
Epetra_Vector.h
Epetra_Operator
Stokhos_ConfigDefs.h
Epetra_CrsMatrix.h
Epetra_ConfigDefs.h
Teuchos::Array< double >
Generated on Fri Nov 22 2024 09:18:13 for Stokhos Package Browser (Single Doxygen Collection) by
1.8.5