Thyra Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Thyra_TpetraEuclideanScalarProd_decl.hpp
Go to the documentation of this file.
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 
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
61 {
63 }
64 
65 
66 } // end namespace Thyra
67 
68 
69 #endif // THYRA_TPETRA_EUCLIDEAN_SCALAR_PROD_DECL_HPP
RCP< const TpetraEuclideanScalarProd< Scalar, LocalOrdinal, GlobalOrdinal, Node > > tpetraEuclideanScalarProd()
Nonmember constructor for TpetraEuclideanScalarProd.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
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...
Teuchos::RCP< const Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > > getConstTpetraMultiVector(const RCP< const MultiVectorBase< Scalar > > &mv) const
Extends concrete implementation of a Euclidean scalar product for specifically Tpetra vectors/multive...