Thyra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
test
nonlinear
models
Thyra_DiagonalScalarProd_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_DIAGONAL_SCALAR_PROD_DECL_HPP
11
#define THYRA_DIAGONAL_SCALAR_PROD_DECL_HPP
12
13
14
#include "Thyra_ScalarProdBase.hpp"
15
16
17
namespace
Thyra {
18
19
26
template
<
class
Scalar>
27
class
DiagonalScalarProd
:
public
ScalarProdBase
<Scalar> {
28
public
:
29
32
34
DiagonalScalarProd
();
35
37
void
initialize
(
const
RCP
<
const
VectorBase<Scalar>
> &s_diag );
38
40
41
protected
:
42
45
47
virtual
bool
isEuclideanImpl
()
const
;
48
50
virtual
void
scalarProdsImpl
(
51
const
MultiVectorBase<Scalar>
& X,
const
MultiVectorBase<Scalar>
& Y,
52
const
ArrayView<Scalar>
&scalarProds_out )
const
;
53
55
RCP<const LinearOpBase<Scalar>
>
getLinearOpImpl
()
const
;
56
58
59
private
:
60
61
RCP<const VectorBase<Scalar>
> s_diag_;
62
63
};
64
65
70
template
<
class
Scalar>
71
RCP<DiagonalScalarProd<Scalar>
>
72
diagonalScalarProd
(
const
RCP
<
const
VectorBase<Scalar>
> &s_diag)
73
{
74
const
RCP<DiagonalScalarProd<Scalar>
>
scalarProd
=
75
Teuchos::rcp
(
new
DiagonalScalarProd<Scalar>
());
76
scalarProd
->initialize(s_diag);
77
return
scalarProd
;
78
}
79
80
81
82
}
// end namespace Thyra
83
84
85
#endif
// THYRA_DIAGONAL_SCALAR_PROD_DECL_HPP
Teuchos::ArrayView
Teuchos::RCP
Thyra::DiagonalScalarProd::scalarProdsImpl
virtual void scalarProdsImpl(const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds_out) const
Definition
Thyra_DiagonalScalarProd_def.hpp:51
Thyra::DiagonalScalarProd::diagonalScalarProd
RCP< DiagonalScalarProd< Scalar > > diagonalScalarProd(const RCP< const VectorBase< Scalar > > &s_diag)
Nonmember constructor.
Definition
Thyra_DiagonalScalarProd_decl.hpp:72
Thyra::DiagonalScalarProd::isEuclideanImpl
virtual bool isEuclideanImpl() const
Returns false.
Definition
Thyra_DiagonalScalarProd_def.hpp:44
Thyra::DiagonalScalarProd::DiagonalScalarProd
DiagonalScalarProd()
Definition
Thyra_DiagonalScalarProd_def.hpp:28
Thyra::DiagonalScalarProd::initialize
void initialize(const RCP< const VectorBase< Scalar > > &s_diag)
Definition
Thyra_DiagonalScalarProd_def.hpp:33
Thyra::DiagonalScalarProd::getLinearOpImpl
RCP< const LinearOpBase< Scalar > > getLinearOpImpl() const
Definition
Thyra_DiagonalScalarProd_def.hpp:106
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
Thyra::ScalarProdBase::scalarProd
Scalar scalarProd(const VectorBase< Scalar > &x, const VectorBase< Scalar > &y) const
Return the scalar product of two vectors in the vector space.
Definition
Thyra_ScalarProdBase_decl.hpp:94
Thyra::VectorBase
Abstract interface for finite-dimensional dense vectors.
Definition
Thyra_VectorBase.hpp:115
Teuchos::rcp
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Generated by
1.17.0