42 #ifndef THYRA_DEFAULT_SPMD_VECTOR_DEF_HPP 43 #define THYRA_DEFAULT_SPMD_VECTOR_DEF_HPP 46 #include "Thyra_DefaultSpmdVector_decl.hpp" 47 #include "Thyra_SpmdVectorDefaultBase.hpp" 48 #include "Thyra_SpmdVectorSpaceDefaultBase.hpp" 57 template<
class Scalar>
63 template<
class Scalar>
66 const ArrayRCP<Scalar> &localValues,
70 initialize(spmdSpace_in, localValues, stride);
74 template<
class Scalar>
77 ,
const ArrayRCP<Scalar> &localValues
82 TEUCHOS_TEST_FOR_EXCEPT(is_null(spmdSpace_in));
83 TEUCHOS_TEST_FOR_EXCEPT(spmdSpace_in->localSubDim() > 0 && localValues.get()==NULL);
84 TEUCHOS_TEST_FOR_EXCEPT(stride==0);
86 spmdSpace_ = spmdSpace_in;
87 localValues_ = localValues;
89 this->updateSpmdSpace();
93 template<
class Scalar>
96 ,ArrayRCP<Scalar> *localValues
100 if(spmdSpace_in) *spmdSpace_in = spmdSpace_;
101 if(localValues) *localValues = localValues_;
102 if(stride) *stride = stride_;
104 spmdSpace_ = Teuchos::null;
105 localValues_ = Teuchos::null;
108 this->updateSpmdSpace();
115 template<
class Scalar>
116 RCP<const SpmdVectorSpaceBase<Scalar> >
126 template<
class Scalar>
128 const Ptr<ArrayRCP<Scalar> > &localValues )
130 *localValues = localValues_;
134 template<
class Scalar>
136 const Ptr<ArrayRCP<const Scalar> > &localValues )
const 138 *localValues = localValues_;
145 #endif // THYRA_DEFAULT_SPMD_VECTOR_DEF_HPP void uninitialize(RCP< const SpmdVectorSpaceBase< Scalar > > *spmdSpace=NULL, ArrayRCP< Scalar > *localValues=NULL, Ordinal *stride=NULL)
Set to an uninitialized state.
void getLocalVectorDataImpl(const Ptr< ArrayRCP< const Scalar > > &localValues) const
void initialize(const RCP< const SpmdVectorSpaceBase< Scalar > > &spmdSpace, const ArrayRCP< Scalar > &localValues, const Ordinal stride)
Initialize.
void getNonconstLocalVectorDataImpl(const Ptr< ArrayRCP< Scalar > > &localValues)
Teuchos::Ordinal Ordinal
Type for the dimension of a vector space. `*.
DefaultSpmdVector()
Construct to uninitialized.
RCP< const SpmdVectorSpaceBase< Scalar > > spmdSpaceImpl() const
Base abstract VectorSpaceBase class for all SPMD-based vector spaces.