42 #ifndef THYRA_PRODUCT_VECTOR_SPACE_BASE_HPP 43 #define THYRA_PRODUCT_VECTOR_SPACE_BASE_HPP 46 #include "Thyra_VectorSpaceBase.hpp" 47 #include "Teuchos_ExpandScalarTypeMacros.hpp" 94 template<
class Scalar>
95 class ProductVectorSpaceBase :
virtual public VectorSpaceBase<Scalar> {
112 virtual Teuchos::RCP<const VectorSpaceBase<Scalar> >
getBlock(
const int k)
const = 0;
114 #ifdef DOXYGEN_COMPILE 116 const VectorSpaceBase<Scalar> *spaces;
122 ProductVectorSpaceBase<Scalar>&
123 operator=(
const ProductVectorSpaceBase<Scalar>&);
133 template<
class Scalar>
135 RCP<ProductVectorSpaceBase<Scalar> >
138 const bool forceSuccess =
true 151 template<
class Scalar>
153 RCP<const ProductVectorSpaceBase<Scalar> >
156 const bool forceSuccess =
true 170 RCP<ProductVectorSpaceBase<double> >
173 const bool forceSuccess =
true 176 return nonconstProductVectorSpaceBase<double>(vs, forceSuccess);
185 RCP<const ProductVectorSpaceBase<double> >
188 const bool forceSuccess =
true 191 return productVectorSpaceBase<double>(vs, forceSuccess);
197 #endif // THYRA_PRODUCT_VECTOR_SPACE_BASE_HPP virtual Teuchos::RCP< const VectorSpaceBase< Scalar > > getBlock(const int k) const =0
Returns a vector space for the kth (zero-based) block.
RCP< ProductVectorSpaceBase< double > > nonconstProductVectorSpaceBase(const RCP< VectorSpaceBase< double > > &vs, const bool forceSuccess=true)
Inline overload of nonconstProductVectorSpaceBase<Scalar>(..) for double.
virtual int numBlocks() const =0
Returns the number of blocks that make up this product space.
Abstract interface for objects that represent a space for vectors.
RCP< const ProductVectorSpaceBase< double > > productVectorSpaceBase(const RCP< const VectorSpaceBase< double > > &vs, const bool forceSuccess=true)
Inline overload of productVectorSpaceBase<Scalar>(..) for double.
RCP< const ProductVectorSpaceBase< Scalar > > productVectorSpaceBase(const RCP< const VectorSpaceBase< Scalar > > &v, const bool forceSuccess=true)
Dynamic cast from a const VectorSpaceBase to a const ProductVectorSpaceBase object and thow exception...
RCP< ProductVectorSpaceBase< Scalar > > nonconstProductVectorSpaceBase(const RCP< VectorSpaceBase< Scalar > > &v, const bool forceSuccess=true)
Dynamic cast from a VectorSpaceBase to a ProductVectorSpaceBase object and thow exception if this fai...