#include <Thyra_ProductVectorSpaceBase.hpp>
Inheritance diagram for Thyra::ProductVectorSpaceBase< Scalar >:

Public Member Functions | |
| virtual int | numBlocks () const =0 |
| Returns the number of blocks that make up this product space. | |
| virtual Teuchos::RCP< const VectorSpaceBase< Scalar > > | getBlock (const int k) const =0 |
Returns a vector space for the kth (zero-based) block. | |
Related Functions | |
| (Note that these are not member functions.) | |
| 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. | |
| 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. | |
| RCP< ProductVectorSpaceBase< double > > | nonconstProductVectorSpaceBase (const RCP< VectorSpaceBase< double > > &vs, const bool forceSuccess=true) |
| Inline overload of nonconstProductVectorSpaceBase<Scalar>(..) for double. | |
| RCP< const ProductVectorSpaceBase< double > > | productVectorSpaceBase (const RCP< const VectorSpaceBase< double > > &vs, const bool forceSuccess=true) |
| Inline overload of productVectorSpaceBase<Scalar>(..) for double. | |
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 82 of file Thyra_ProductVectorSpaceBase.hpp.
| virtual int Thyra::ProductVectorSpaceBase< Scalar >::numBlocks | ( | ) | const [pure virtual] |
| virtual Teuchos::RCP<const VectorSpaceBase<Scalar> > Thyra::ProductVectorSpaceBase< Scalar >::getBlock | ( | const int | k | ) | const [pure virtual] |
| 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 117 of file Thyra_ProductVectorSpaceBase.hpp.
| 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 135 of file Thyra_ProductVectorSpaceBase.hpp.
| RCP< ProductVectorSpaceBase< double > > nonconstProductVectorSpaceBase | ( | const RCP< VectorSpaceBase< double > > & | vs, | |
| const bool | forceSuccess = true | |||
| ) | [related] |
Inline overload of nonconstProductVectorSpaceBase<Scalar>(..) for double.
Definition at line 152 of file Thyra_ProductVectorSpaceBase.hpp.
| 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 167 of file Thyra_ProductVectorSpaceBase.hpp.
1.4.7