42 #ifndef THYRA_Spmd_MULTI_VECTOR_STD_DECL_HPP 43 #define THYRA_Spmd_MULTI_VECTOR_STD_DECL_HPP 45 #include "Thyra_SpmdMultiVectorDefaultBase_decl.hpp" 67 template<
class Scalar>
87 const ArrayRCP<Scalar> &localValues,
142 const ArrayRCP<Scalar> &localValues,
154 ArrayRCP<Scalar> *localValues = NULL,
159 RCP< const ScalarProdVectorSpaceBase<Scalar> >
171 RCP<const MultiVectorBase<Scalar> >
174 RCP<MultiVectorBase<Scalar> >
177 RCP<const MultiVectorBase<Scalar> >
180 RCP<MultiVectorBase<Scalar> >
187 RCP<const SpmdVectorSpaceBase<Scalar> >
spmdSpaceImpl()
const;
190 const Ptr<ArrayRCP<Scalar> > &localValues,
const Ptr<Ordinal> &leadingDim
194 const Ptr<ArrayRCP<const Scalar> > &localValues,
const Ptr<Ordinal> &leadingDim
203 RCP<const SpmdVectorSpaceBase<Scalar> > spmdRangeSpace_;
204 RCP<const ScalarProdVectorSpaceBase<Scalar> > domainSpace_;
205 ArrayRCP<Scalar> localValues_;
211 ArrayRCP<Scalar> createContiguousCopy(
const ArrayView<const int> &cols)
const;
217 static int numSkipCopyBack;
223 template<
class Scalar>
224 RCP<DefaultSpmdMultiVector<Scalar> >
225 defaultSpmdMultiVector(
228 const ArrayRCP<Scalar> &localValues,
234 spmdRangeSpace, domainSpace, localValues, leadingDim
243 #endif // THYRA_Spmd_MULTI_VECTOR_STD_DECL_HPP RCP< MultiVectorBase< Scalar > > nonconstContigSubViewImpl(const Range1D &colRng)
RCP< const SpmdVectorSpaceBase< Scalar > > spmdSpaceImpl() const
RCP< const MultiVectorBase< Scalar > > nonContigSubViewImpl(const ArrayView< const int > &cols) const
Base node implementation class for SPMD multi-vectors.
void getLocalMultiVectorDataImpl(const Ptr< ArrayRCP< const Scalar > > &localValues, const Ptr< Ordinal > &leadingDim) const
RCP< VectorBase< Scalar > > nonconstColImpl(Ordinal j)
Teuchos::Ordinal Ordinal
Type for the dimension of a vector space. `*.
RCP< const ScalarProdVectorSpaceBase< Scalar > > domainScalarProdVecSpc() const
void getNonconstLocalMultiVectorDataImpl(const Ptr< ArrayRCP< Scalar > > &localValues, const Ptr< Ordinal > &leadingDim)
RCP< MultiVectorBase< Scalar > > nonconstNonContigSubViewImpl(const ArrayView< const int > &cols)
void uninitialize(RCP< const SpmdVectorSpaceBase< Scalar > > *spmdRangeSpace=NULL, RCP< const ScalarProdVectorSpaceBase< Scalar > > *domainSpace=NULL, ArrayRCP< Scalar > *localValues=NULL, Ordinal *leadingDim=NULL)
Set to an uninitialized state.
Efficient concrete implementation subclass for SPMD multi-vectors.
DefaultSpmdMultiVector()
Construct to uninitialized.
void initialize(const RCP< const SpmdVectorSpaceBase< Scalar > > &spmdRangeSpace, const RCP< const ScalarProdVectorSpaceBase< Scalar > > &domainSpace)
Initialize only with vector spaces where storage is allocated internally..
RCP< const MultiVectorBase< Scalar > > contigSubViewImpl(const Range1D &colRng) const
Base abstract VectorSpaceBase class for all SPMD-based vector spaces.