Thyra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 
15 namespace Thyra {
16 
17 
18 template<class Scalar> class ProductVectorSpaceBase;
19 
20 
33 template<class Scalar>
34 class ProductMultiVectorBase : virtual public MultiVectorBase<Scalar> {
35 public:
36 
43  productSpace() const = 0;
44 
55  virtual bool blockIsConst(const int k) const = 0;
56 
78  getNonconstMultiVectorBlock(const int k) = 0;
79 
92  getMultiVectorBlock(const int k) const = 0;
93 
94 private:
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
Base interface for product multi-vectors.
virtual Teuchos::RCP< const ProductVectorSpaceBase< Scalar > > productSpace() const =0
Returns the associated product vector space that represents the range.
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 MultiVectorBase< Scalar > > getMultiVectorBlock(const int k) const =0
Returns a non-persisting const view of the (zero-based) kth block multi-vector.
Interface for a collection of column vectors called a multi-vector.
virtual bool blockIsConst(const int k) const =0
Return if the kth multi-vector block is const-only.