Thyra Version of the Day
Loading...
Searching...
No Matches
Thyra_MultiVectorAdapterBase_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_MULTI_VECTOR_ADAPTER_BASE_DECL_HPP
11#define THYRA_MULTI_VECTOR_ADAPTER_BASE_DECL_HPP
12
13#include "Thyra_MultiVectorDefaultBase.hpp"
14
15
16namespace Thyra {
17
18
20template<class Scalar> class ScalarProdVectorSpaceBase;
21
22
34template<class Scalar>
35class MultiVectorAdapterBase : virtual public MultiVectorDefaultBase<Scalar>
36{
37public:
38
41
45
49
58 virtual void euclideanApply(
59 const EOpTransp M_trans,
62 const Scalar alpha,
63 const Scalar beta
64 ) const = 0;
65
67
75
76protected:
77
81 bool opSupportedImpl(EOpTransp M_trans) const;
83 void applyImpl(
84 const EOpTransp M_trans,
87 const Scalar alpha,
88 const Scalar beta
89 ) const;
91
92};
93
94
95} // namespace Thyra
96
97
98#endif // THYRA_MULTI_VECTOR_ADAPTER_BASE_DECL_HPP
Node subclass for MultiVectorBase subclasses that allows the insertion of an application defined scal...
virtual RCP< const ScalarProdVectorSpaceBase< Scalar > > rangeScalarProdVecSpc() const =0
virtual RCP< const ScalarProdVectorSpaceBase< Scalar > > domainScalarProdVecSpc() const =0
RCP< const VectorSpaceBase< Scalar > > domain() const
Returns this->domainScalarProdVecSpc()
virtual void euclideanApply(const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const =0
Apply the linear operator to a multi-vector with respect to a Euclidean vector space where the scalar...
void applyImpl(const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const
.
RCP< const VectorSpaceBase< Scalar > > range() const
Returns this->rangeScalarProdVecSpc()
Interface for a collection of column vectors called a multi-vector.
Node subclass that uses a default MultiVectorBase implementation to provide default implementations f...
EOpTransp
Enumeration for determining how a linear operator is applied. `*.