Thyra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Related Functions | List of all members
Thyra::ProductVectorSpaceBase< Scalar > Class Template Referenceabstract

More...

#include <Thyra_BlockedLinearOpBase.hpp>

Inheritance diagram for Thyra::ProductVectorSpaceBase< Scalar >:
Inheritance graph
[legend]

Public Member Functions

virtual int numBlocks () const =0
 Returns the number of blocks that make up this product space. More...
 
virtual Teuchos::RCP< const
VectorSpaceBase< Scalar > > 
getBlock (const int k) const =0
 Returns a vector space for the kth (zero-based) block. More...
 
- Public Member Functions inherited from Thyra::VectorSpaceBase< Scalar >
virtual Ordinal dim () const =0
 Return the dimension of the vector space. More...
 
virtual bool isCompatible (const VectorSpaceBase< Scalar > &vecSpc) const =0
 Compare the compatibility of two vector spaces. More...
 
virtual RCP< const
VectorSpaceFactoryBase< Scalar > > 
smallVecSpcFcty () const =0
 Return a VectorSpaceFactoryBase object for the creation of (usually serial) vector spaces with a small dimension. More...
 
virtual Scalar scalarProd (const VectorBase< Scalar > &x, const VectorBase< Scalar > &y) const =0
 Return the scalar product of two vectors in the vector space. More...
 
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. More...
 
virtual bool isEuclidean () const
 Return if this vector space has a Euclidean (identity) basis in which case the scalar product is the same as the dot product. More...
 
virtual bool hasInCoreView (const Range1D &rng=Range1D(), const EViewType viewType=VIEW_TYPE_DETACHED, const EStrideType strideType=STRIDE_TYPE_NONUNIT) const
 Returns true if this->acquireDetachedView(rng,...) returns a direct view of the range of data requested. More...
 
virtual RCP< const
VectorSpaceBase< Scalar > > 
clone () const
 Clone this object (if supported). More...
 
virtual RCP< MultiVectorBase
< Scalar > > 
createCachedMembersView (const RTOpPack::SubMultiVectorView< Scalar > &raw_mv) const
 Create a (possibly) cached multi-vector member that is a non-const view of raw multi-vector data. The caching mechanism must be implemented by child classes, by default this just calls the regular createMembersView. More...
 
virtual RCP< const
MultiVectorBase< Scalar > > 
createCachedMembersView (const RTOpPack::ConstSubMultiVectorView< Scalar > &raw_mv) const
 Create a (possibly) cached multi-vector member that is a const view of raw multi-vector data. The caching mechanism must be implemented by child classes, by default this just calls the regular createMembersView. More...
 

Related Functions

(Note that these are not member functions.)

template<class Scalar >
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 fails. More...
 
template<class Scalar >
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 if this fails. More...
 
RCP< ProductVectorSpaceBase
< double > > 
nonconstProductVectorSpaceBase (const RCP< VectorSpaceBase< double > > &vs, const bool forceSuccess=true)
 Inline overload of nonconstProductVectorSpaceBase<Scalar>(..) for double. More...
 
RCP< const
ProductVectorSpaceBase< double > > 
productVectorSpaceBase (const RCP< const VectorSpaceBase< double > > &vs, const bool forceSuccess=true)
 Inline overload of productVectorSpaceBase<Scalar>(..) for double. More...
 

Detailed Description

template<class Scalar>
class Thyra::ProductVectorSpaceBase< Scalar >

Base interface for product vector spaces.

This class defines an abstract interface for a vector space that is built out of the one or more other vector spaces to form what mathematicians like to call a "product space".

For example, one can think of a product space as the concatenation of one or more vector spaces V[k] where k=0,...,numBlocks-1. A product space Z would then be represented as:

    [ V[0]           ]
Z = [ V[1]           ]
    [ .              ]
    [ V[numBlocks-1] ]

The total number of constituent vector spaces is returned by the numBlocks() function. Smart pointers to the constituent vector space blocks themselves are returned using the getBlock() function.

The vectors created by this->createMember() (which is inherited from the VectorSpaceBase interface) must support the ProductVectorBase interface (i.e. dynamic_cast<ProductVectorBase<Scalar>*>(&*this->createMember()) != NULL). Likewise, the multi-vectors created by this->createMembers() must support the ProductMultiVectorBase interface (i.e. dynamic_cast<ProductMultiVectorBase<Scalar>*>(&*this->createMember()) != NULL)

This class is only an interface. A standard implementation of this interface that should be sufficient for 99% or so of use cases is provided in the concrete subclass DefaultProductVectorSpace.

Definition at line 53 of file Thyra_BlockedLinearOpBase.hpp.

Member Function Documentation

template<class Scalar >
virtual int Thyra::ProductVectorSpaceBase< Scalar >::numBlocks ( ) const
pure virtual

Returns the number of blocks that make up this product space.

Preconditions:

Implemented in Thyra::DefaultProductVectorSpace< Scalar >, Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >, and Thyra::DefaultMultiVectorProductVectorSpace< Scalar >.

template<class Scalar >
virtual Teuchos::RCP<const VectorSpaceBase<Scalar> > Thyra::ProductVectorSpaceBase< Scalar >::getBlock ( const int  k) const
pure virtual

Returns a vector space for the kth (zero-based) block.

Preconditions:

Implemented in Thyra::DefaultProductVectorSpace< Scalar >, Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >, and Thyra::DefaultMultiVectorProductVectorSpace< Scalar >.

Friends And Related Function Documentation

template<class Scalar >
RCP< ProductVectorSpaceBase< Scalar > > nonconstProductVectorSpaceBase ( const RCP< VectorSpaceBase< Scalar > > &  v,
const bool  forceSuccess = true 
)
related

Dynamic cast from a VectorSpaceBase to a ProductVectorSpaceBase object and thow exception if this fails.

Definition at line 136 of file Thyra_ProductVectorSpaceBase.hpp.

template<class Scalar >
RCP< const ProductVectorSpaceBase< Scalar > > productVectorSpaceBase ( const RCP< const VectorSpaceBase< Scalar > > &  v,
const bool  forceSuccess = true 
)
related

Dynamic cast from a const VectorSpaceBase to a const ProductVectorSpaceBase object and thow exception if this fails.

Definition at line 154 of file Thyra_ProductVectorSpaceBase.hpp.

template<class Scalar >
RCP< ProductVectorSpaceBase< double > > nonconstProductVectorSpaceBase ( const RCP< VectorSpaceBase< double > > &  vs,
const bool  forceSuccess = true 
)
related

Inline overload of nonconstProductVectorSpaceBase<Scalar>(..) for double.

Definition at line 171 of file Thyra_ProductVectorSpaceBase.hpp.

template<class Scalar >
RCP< const ProductVectorSpaceBase< double > > productVectorSpaceBase ( const RCP< const VectorSpaceBase< double > > &  vs,
const bool  forceSuccess = true 
)
related

Inline overload of productVectorSpaceBase<Scalar>(..) for double.

Definition at line 186 of file Thyra_ProductVectorSpaceBase.hpp.


The documentation for this class was generated from the following files: