42 #ifndef THYRA_DEFAULT_CLUSTERED_SPMD_PRODUCT_VECTOR_SPACE_DECL_HPP
43 #define THYRA_DEFAULT_CLUSTERED_SPMD_PRODUCT_VECTOR_SPACE_DECL_HPP
45 #include "Thyra_VectorSpaceBase_decl.hpp"
46 #include "Thyra_ProductVectorSpaceBase.hpp"
47 #include "Thyra_VectorSpaceDefaultBase.hpp"
48 #include "Teuchos_Comm.hpp"
84 template<
class Scalar>
212 typedef std::vector<RCP<const VectorSpaceBase<Scalar> > > vecSpaces_t;
218 int clusterRootRank_;
220 vecSpaces_t vecSpaces_;
237 template<
class Scalar>
241 return intraClusterComm_;
245 template<
class Scalar>
248 return clusterRootRank_;
252 template<
class Scalar>
256 return interClusterComm_;
260 template<
class Scalar>
263 return clusterSubDim_;
267 template<
class Scalar>
270 return clusterOffset_;
277 #endif // THYRA_DEFAULT_CLUSTERED_SPMD_PRODUCT_VECTOR_SPACE_DECL_HPP
bool isCompatible(const VectorSpaceBase< Scalar > &vecSpc) const
Abstract interface for objects that represent a space for vectors.
RCP< const VectorSpaceBase< Scalar > > getBlock(const int k) const
RCP< const VectorSpaceBase< Scalar > > clone() const
RCP< const Teuchos::Comm< Ordinal > > interClusterComm() const
EViewType
Determines if a view is a direct view of data or a detached copy of data.
bool hasInCoreView(const Range1D &rng, const EViewType viewType, const EStrideType strideType) const
Teuchos::Ordinal Ordinal
Type for the dimension of a vector space. `*.
Node VectorSpaceBase subclass that provides default implementations for many functions using a defaul...
int clusterOffset() const
Scalar scalarProd(const VectorBase< Scalar > &x, const VectorBase< Scalar > &y) const
void scalarProdsImpl(const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds) const
Interface for a collection of column vectors called a multi-vector.
std::string description() const
RCP< const Teuchos::Comm< Ordinal > > intraClusterComm() const
RCP< MultiVectorBase< Scalar > > createMembers(int numMembers) const
int clusterRootRank() const
RCP< VectorBase< Scalar > > createMember() const
DefaultClusteredSpmdProductVectorSpace()
void initialize(const RCP< const Teuchos::Comm< Ordinal > > &intraClusterComm, const int clusterRootRank, const RCP< const Teuchos::Comm< Ordinal > > &interClusterComm, const int numBlocks, const RCP< const VectorSpaceBase< Scalar > > vecSpaces[])
Initalize.
EStrideType
Determine if data is unit stride or non-unit stride.
Abstract interface for finite-dimensional dense vectors.
int clusterSubDim() const
RCP< const VectorSpaceFactoryBase< Scalar > > smallVecSpcFcty() const