10#ifndef THYRA_DEFAULT_CLUSTERED_SPMD_PRODUCT_VECTOR_SPACE_DECL_HPP 
   11#define THYRA_DEFAULT_CLUSTERED_SPMD_PRODUCT_VECTOR_SPACE_DECL_HPP 
   13#include "Thyra_VectorSpaceBase_decl.hpp" 
   14#include "Thyra_ProductVectorSpaceBase.hpp" 
   15#include "Thyra_VectorSpaceDefaultBase.hpp" 
   16#include "Teuchos_Comm.hpp" 
  180  typedef std::vector<RCP<const VectorSpaceBase<Scalar> > >  vecSpaces_t;
 
  186  int clusterRootRank_;
 
  188  vecSpaces_t vecSpaces_; 
 
 
  205template<
class Scalar>
 
  209  return intraClusterComm_;
 
 
  213template<
class Scalar>
 
  216  return clusterRootRank_;
 
 
  220template<
class Scalar>
 
  224  return interClusterComm_;
 
 
  228template<
class Scalar>
 
  231  return clusterSubDim_;
 
 
  235template<
class Scalar>
 
  238  return clusterOffset_;
 
 
std::string description() const
 
int clusterOffset() const
 
RCP< const VectorSpaceBase< Scalar > > clone() const
 
int clusterSubDim() const
 
void scalarProdsImpl(const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds) const
 
int clusterRootRank() const
 
RCP< const Teuchos::Comm< Ordinal > > intraClusterComm() const
 
DefaultClusteredSpmdProductVectorSpace()
 
RCP< const Teuchos::Comm< Ordinal > > interClusterComm() const
 
RCP< const VectorSpaceFactoryBase< Scalar > > smallVecSpcFcty() const
 
bool isCompatible(const VectorSpaceBase< Scalar > &vecSpc) const
 
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.
 
Scalar scalarProd(const VectorBase< Scalar > &x, const VectorBase< Scalar > &y) const
 
RCP< const VectorSpaceBase< Scalar > > getBlock(const int k) const
 
bool hasInCoreView(const Range1D &rng, const EViewType viewType, const EStrideType strideType) const
 
RCP< MultiVectorBase< Scalar > > createMembers(int numMembers) const
 
RCP< VectorBase< Scalar > > createMember() const
 
Interface for a collection of column vectors called a multi-vector.
 
Abstract interface for finite-dimensional dense vectors.
 
Abstract interface for objects that represent a space for vectors.
 
void scalarProds(const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds_out) const
Return the scalar product of each column in two multi-vectors in the vector space.
 
Node VectorSpaceBase subclass that provides default implementations for many functions using a defaul...
 
EStrideType
Determine if data is unit stride or non-unit stride.
 
EViewType
Determines if a view is a direct view of data or a detached copy of data.
 
Teuchos::Ordinal Ordinal
Type for the dimension of a vector space. `*.