Thyra Version of the Day
Loading...
Searching...
No Matches
Thyra_ProductMultiVectorBase.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_PRODUCT_MULTI_VECTOR_BASE_HPP
11#define THYRA_PRODUCT_MULTI_VECTOR_BASE_HPP
12
13#include "Thyra_MultiVectorBase.hpp"
14
15namespace Thyra {
16
17
18template<class Scalar> class ProductVectorSpaceBase;
19
20
33template<class Scalar>
34class ProductMultiVectorBase : virtual public MultiVectorBase<Scalar> {
35public:
36
43 productSpace() const = 0;
44
55 virtual bool blockIsConst(const int k) const = 0;
56
79
92 getMultiVectorBlock(const int k) const = 0;
93
94private:
95
96 // Not defined and not to be called
98 operator=(const ProductMultiVectorBase<Scalar>&);
99
100};
101
102
103} // namespace Thyra
104
105
106#endif // THYRA_PRODUCT_MULTI_VECTOR_BASE_HPP
Interface for a collection of column vectors called a multi-vector.
Base interface for product multi-vectors.
virtual Teuchos::RCP< MultiVectorBase< Scalar > > getNonconstMultiVectorBlock(const int k)=0
Returns a non-persisting non-const view of the zero-based kth block multi-vector.
virtual Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > productSpace() const =0
Returns the associated product vector space that represents the range.
virtual bool blockIsConst(const int k) const =0
Return if the kth multi-vector block is const-only.
virtual Teuchos::RCP< const MultiVectorBase< Scalar > > getMultiVectorBlock(const int k) const =0
Returns a non-persisting const view of the (zero-based) kth block multi-vector.