Teko
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Teko_ReorderedLinearOp.hpp
1
// @HEADER
2
// *****************************************************************************
3
// Teko: A package for block and physics based preconditioning
4
//
5
// Copyright 2010 NTESS and the Teko contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef __Teko_ReorderedLinearOp_hpp__
11
#define __Teko_ReorderedLinearOp_hpp__
12
13
#include "
Teko_Utilities.hpp
"
14
#include "Teko_ImplicitLinearOp.hpp"
15
#include "Teko_BlockedReordering.hpp"
16
17
namespace
Teko {
18
22
class
ReorderedLinearOp :
public
ImplicitLinearOp
{
23
public
:
24
ReorderedLinearOp(
const
Teuchos::RCP<const BlockReorderManager> &mgr,
25
const
Teuchos::RCP<Thyra::LinearOpBase<double> > &blockedOp);
26
28
Teuchos::RCP<const BlockReorderManager>
getReorderManager
()
const
{
return
mgr_; }
29
31
Teko::ModifiableLinearOp
getBlockedOp
()
const
{
return
blockedOp_; }
32
34
virtual
VectorSpace
range
()
const
;
35
37
virtual
VectorSpace
domain
()
const
;
38
52
virtual
void
implicitApply
(
const
MultiVector &x, MultiVector &y,
const
double
alpha = 1.0,
53
const
double
beta = 0.0)
const
;
54
55
virtual
void
describe(Teuchos::FancyOStream &out_arg,
56
const
Teuchos::EVerbosityLevel verbLevel)
const
;
57
58
private
:
59
VectorSpace range_;
60
VectorSpace domain_;
61
Teuchos::RCP<const BlockReorderManager> mgr_;
62
Teuchos::RCP<Thyra::LinearOpBase<double> > blockedOp_;
63
};
64
65
}
// end namespace Teko
66
67
#endif
Teko_Utilities.hpp
Teko::ImplicitLinearOp
A virtual class that simplifies the construction of custom operators.
Definition
Teko_ImplicitLinearOp.hpp:23
Teko::ReorderedLinearOp::domain
virtual VectorSpace domain() const
Domain space of this operator.
Definition
Teko_ReorderedLinearOp.cpp:23
Teko::ReorderedLinearOp::getReorderManager
Teuchos::RCP< const BlockReorderManager > getReorderManager() const
Get accessor to make reuse easier.
Definition
Teko_ReorderedLinearOp.hpp:28
Teko::ReorderedLinearOp::implicitApply
virtual void implicitApply(const MultiVector &x, MultiVector &y, const double alpha=1.0, const double beta=0.0) const
Perform a matrix vector multiply with this implicitly defined blocked operator.
Definition
Teko_ReorderedLinearOp.cpp:25
Teko::ReorderedLinearOp::getBlockedOp
Teko::ModifiableLinearOp getBlockedOp() const
Get accessor to make reuse easier.
Definition
Teko_ReorderedLinearOp.hpp:31
Teko::ReorderedLinearOp::range
virtual VectorSpace range() const
Range space of this operator.
Definition
Teko_ReorderedLinearOp.cpp:21
Generated by
1.17.0