Thyra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
src
support
operator_vector
adapter_support
Thyra_LinearOpScalarProd_decl.hpp
1
// @HEADER
2
// *****************************************************************************
3
// Thyra: Interfaces and Support for Abstract Numerical Algorithms
4
//
5
// Copyright 2004 NTESS and the Thyra contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef THYRA_LINEAR_OP_SCALAR_PROD_DECL_HPP
11
#define THYRA_LINEAR_OP_SCALAR_PROD_DECL_HPP
12
13
14
#include "Thyra_ScalarProdBase_decl.hpp"
15
16
17
namespace
Thyra {
18
28
template
<
class
Scalar>
29
class
LinearOpScalarProd
:
public
ScalarProdBase
<Scalar> {
30
public
:
31
34
36
LinearOpScalarProd
();
37
39
LinearOpScalarProd
(
const
RCP
<
const
LinearOpBase<Scalar>
> &
op
);
40
42
void
initialize
(
const
RCP
<
const
LinearOpBase<Scalar>
> &
op
);
43
45
const
RCP<const LinearOpBase<Scalar>
>&
op
()
const
;
46
48
void
uninitialize
(
49
const
Ptr
<
RCP
<
const
LinearOpBase<Scalar>
> > &
op
= Teuchos::null );
50
52
53
protected
:
54
57
59
virtual
bool
isEuclideanImpl
()
const
;
60
62
void
scalarProdsImpl
(
63
const
MultiVectorBase<Scalar>
& X,
const
MultiVectorBase<Scalar>
& Y,
64
const
ArrayView<Scalar>
&scalarProds_out
65
)
const
;
66
68
RCP<const LinearOpBase<Scalar>
>
getLinearOpImpl
()
const
;
69
71
72
private
:
73
74
RCP<const LinearOpBase<Scalar>
> op_;
75
76
};
77
78
79
// //////////////////////////////////
80
// Inline members
81
82
83
template
<
class
Scalar>
84
inline
85
const
RCP<const LinearOpBase<Scalar>
>&
LinearOpScalarProd<Scalar>::op
()
const
86
{
87
return
op_;
88
}
89
90
91
}
// end namespace Thyra
92
93
94
#endif
// THYRA_LINEAR_OP_SCALAR_PROD_DECL_HPP
Teuchos::ArrayView
Teuchos::Ptr
Teuchos::RCP
Thyra::LinearOpBase
Base class for all linear operators.
Definition
Thyra_LinearOpBase_decl.hpp:159
Thyra::LinearOpScalarProd::scalarProdsImpl
void scalarProdsImpl(const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds_out) const
Definition
Thyra_LinearOpScalarProd_def.hpp:73
Thyra::LinearOpScalarProd::getLinearOpImpl
RCP< const LinearOpBase< Scalar > > getLinearOpImpl() const
Definition
Thyra_LinearOpScalarProd_def.hpp:87
Thyra::LinearOpScalarProd::uninitialize
void uninitialize(const Ptr< RCP< const LinearOpBase< Scalar > > > &op=Teuchos::null)
Definition
Thyra_LinearOpScalarProd_def.hpp:53
Thyra::LinearOpScalarProd::LinearOpScalarProd
LinearOpScalarProd()
Definition
Thyra_LinearOpScalarProd_def.hpp:28
Thyra::LinearOpScalarProd::initialize
void initialize(const RCP< const LinearOpBase< Scalar > > &op)
Definition
Thyra_LinearOpScalarProd_def.hpp:41
Thyra::LinearOpScalarProd::op
const RCP< const LinearOpBase< Scalar > > & op() const
Definition
Thyra_LinearOpScalarProd_decl.hpp:85
Thyra::LinearOpScalarProd::isEuclideanImpl
virtual bool isEuclideanImpl() const
Returns false.
Definition
Thyra_LinearOpScalarProd_def.hpp:66
Thyra::MultiVectorBase
Interface for a collection of column vectors called a multi-vector.
Definition
Thyra_MultiVectorBase_decl.hpp:464
Thyra::ScalarProdBase
Abstract interface for scalar products.
Definition
Thyra_ScalarProdBase_decl.hpp:58
Generated by
1.17.0