Thyra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
adapters
tpetra
src
Thyra_TpetraEuclideanScalarProd_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_TPETRA_EUCLIDEAN_SCALAR_PROD_DECL_HPP
11
#define THYRA_TPETRA_EUCLIDEAN_SCALAR_PROD_DECL_HPP
12
13
14
#include "Thyra_EuclideanScalarProd.hpp"
15
#include "Tpetra_MultiVector.hpp"
16
17
18
namespace
Thyra {
19
25
template
<
class
Scalar,
class
LocalOrdinal,
class
GlobalOrdinal,
class
Node>
26
class
TpetraEuclideanScalarProd
:
public
EuclideanScalarProd
<Scalar> {
27
protected
:
28
31
36
virtual
void
scalarProdsImpl
(
37
const
MultiVectorBase<Scalar>
& X,
38
const
MultiVectorBase<Scalar>
& Y,
39
const
ArrayView<Scalar>
&
scalarProds
40
)
const
;
41
43
44
private
:
45
47
Teuchos::RCP<const Tpetra::MultiVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>
>
48
getConstTpetraMultiVector(
const
RCP
<
const
MultiVectorBase<Scalar>
>& mv)
const
;
49
50
};
51
52
57
template
<
class
Scalar,
class
LocalOrdinal,
class
GlobalOrdinal,
class
Node>
58
inline
59
RCP<const TpetraEuclideanScalarProd<Scalar,LocalOrdinal,GlobalOrdinal,Node>
>
60
tpetraEuclideanScalarProd
()
61
{
62
return
Teuchos::rcp
(
new
TpetraEuclideanScalarProd<Scalar,LocalOrdinal,GlobalOrdinal,Node>
);
63
}
64
65
66
}
// end namespace Thyra
67
68
69
#endif
// THYRA_TPETRA_EUCLIDEAN_SCALAR_PROD_DECL_HPP
Teuchos::ArrayView
Teuchos::RCP
Thyra::EuclideanScalarProd
Concrete implementation of a scalar product for a Euclidean vector space (i.e. using the dot product)...
Definition
Thyra_EuclideanScalarProd_decl.hpp:29
Thyra::MultiVectorBase
Interface for a collection of column vectors called a multi-vector.
Definition
Thyra_MultiVectorBase_decl.hpp:464
Thyra::ScalarProdBase::scalarProds
void scalarProds(const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds_out) const
Return the scalar product of each column in two multi-vectors in the vector space.
Definition
Thyra_ScalarProdBase_decl.hpp:132
Thyra::TpetraEuclideanScalarProd
Extends concrete implementation of a Euclidean scalar product for specifically Tpetra vectors/multive...
Definition
Thyra_TpetraEuclideanScalarProd_decl.hpp:26
Thyra::TpetraEuclideanScalarProd::scalarProdsImpl
virtual void scalarProdsImpl(const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds) const
If X and Y are both Tpetra wrappers, computes the pair-wise scalar products directly with Tpetra call...
Definition
Thyra_TpetraEuclideanScalarProd_def.hpp:22
Thyra::TpetraEuclideanScalarProd::tpetraEuclideanScalarProd
RCP< const TpetraEuclideanScalarProd< Scalar, LocalOrdinal, GlobalOrdinal, Node > > tpetraEuclideanScalarProd()
Nonmember constructor for TpetraEuclideanScalarProd.
Definition
Thyra_TpetraEuclideanScalarProd_decl.hpp:60
Teuchos::rcp
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Generated by
1.17.0