Thyra Version of the Day
Loading...
Searching...
No Matches
Thyra_SpmdMultiVectorBase.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_SPMD_MULTI_VECTOR_BASE_DECL_HPP
11#define THYRA_SPMD_MULTI_VECTOR_BASE_DECL_HPP
12
13
14#include "Thyra_MultiVectorBase.hpp"
15
16
17namespace Thyra {
18
19
20template<class Scalar> class SpmdVectorSpaceBase;
21
22
34template<class Scalar>
35class SpmdMultiVectorBase : virtual public MultiVectorBase<Scalar>
36{
37public:
38
41
47
52
57
79 const Ptr<ArrayRCP<Scalar> > &localValues, const Ptr<Ordinal> &leadingDim
80 )
81 { getNonconstLocalMultiVectorDataImpl(localValues, leadingDim); }
82
104 const Ptr<ArrayRCP<const Scalar> > &localValues, const Ptr<Ordinal> &leadingDim
105 ) const
106 { getLocalMultiVectorDataImpl(localValues, leadingDim); }
107
109
110protected:
111
114
117
121
125
128 const Ptr<ArrayRCP<Scalar> > &localValues, const Ptr<Ordinal> &leadingDim
129 ) = 0;
130
133 const Ptr<ArrayRCP<const Scalar> > &localValues, const Ptr<Ordinal> &leadingDim
134 ) const = 0;
135
137
138}; // end class SpmdMultiVectorBase
139
140
141} // end namespace Thyra
142
143
144#endif // THYRA_SPMD_MULTI_VECTOR_BASE_DECL_HPP
Interface for a collection of column vectors called a multi-vector.
Base interface class for SPMD multi-vectors.
RTOpPack::SubMultiVectorView< Scalar > getNonconstLocalSubMultiVector()
Get a non-const generalized view of local multi-vector data.
virtual void getLocalMultiVectorDataImpl(const Ptr< ArrayRCP< const Scalar > > &localValues, const Ptr< Ordinal > &leadingDim) const =0
Virtual implementation for getLocalData().
virtual void getNonconstLocalMultiVectorDataImpl(const Ptr< ArrayRCP< Scalar > > &localValues, const Ptr< Ordinal > &leadingDim)=0
Virtual implementation for getNonconstLocalData().
virtual RTOpPack::SubMultiVectorView< Scalar > getNonconstLocalSubMultiVectorImpl()=0
Virtual implementation for getNonconstLocalSubMultiVector().
RCP< const SpmdVectorSpaceBase< Scalar > > spmdSpace() const
Returns the SPMD vector space object for the range of *this multi-vector.
void getLocalData(const Ptr< ArrayRCP< const Scalar > > &localValues, const Ptr< Ordinal > &leadingDim) const
Returns a const pointer to a Fortran-style view of the local multi-vector data.
virtual RTOpPack::ConstSubMultiVectorView< Scalar > getLocalSubMultiVectorImpl() const =0
Virtual implementation for getLocalSubMultiVector().
virtual RCP< const SpmdVectorSpaceBase< Scalar > > spmdSpaceImpl() const =0
Virtual implementation for spmdSpace().
RTOpPack::ConstSubMultiVectorView< Scalar > getLocalSubMultiVector() const
Get a const generalized view of local multi-vector data.
void getNonconstLocalData(const Ptr< ArrayRCP< Scalar > > &localValues, const Ptr< Ordinal > &leadingDim)
Returns a non-const pointer to a Fortran-style view of the local multi-vector data.