|
Thyra
Version of the Day
|
#include <Thyra_ProductVectorSpaceBase.hpp>
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... | |
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... | |
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 95 of file Thyra_ProductVectorSpaceBase.hpp.
|
pure virtual |
Returns the number of blocks that make up this product space.
Preconditions:
this->dim() > 0.
|
pure virtual |
|
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.
|
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.
|
related |
Inline overload of nonconstProductVectorSpaceBase<Scalar>(..) for double.
Definition at line 171 of file Thyra_ProductVectorSpaceBase.hpp.
|
related |
Inline overload of productVectorSpaceBase<Scalar>(..) for double.
Definition at line 186 of file Thyra_ProductVectorSpaceBase.hpp.