|
Thyra Package Browser (Single Doxygen Collection) Version of the Day
|
Base interface for product vector spaces. More...
#include <Thyra_ProductVectorSpaceBase.hpp>

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. | |
Private Member Functions | |
| ProductVectorSpaceBase< Scalar > & | operator= (const ProductVectorSpaceBase< Scalar > &) |
Private Attributes | |
| const VectorSpaceBase< Scalar > * | spaces |
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. | |
| 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. | |
| 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. | |
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 82 of file Thyra_ProductVectorSpaceBase.hpp.
| virtual int Thyra::ProductVectorSpaceBase< Scalar >::numBlocks | ( | ) | const [pure virtual] |
Returns the number of blocks that make up this product space.
Preconditions:
this->dim() > 0. Implemented in Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >, Thyra::DefaultMultiVectorProductVectorSpace< Scalar >, and Thyra::DefaultProductVectorSpace< 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:
0 <= k <= numBlocks()-1 Implemented in Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >, Thyra::DefaultMultiVectorProductVectorSpace< Scalar >, and Thyra::DefaultProductVectorSpace< Scalar >.
Referenced by Thyra::EpetraOperatorWrapper::getEpetraComm(), and Thyra::SpmdVectorSpaceDefaultBase< Scalar >::isCompatible().
| ProductVectorSpaceBase<Scalar>& Thyra::ProductVectorSpaceBase< Scalar >::operator= | ( | const ProductVectorSpaceBase< Scalar > & | ) | [private] |
| 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 123 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 141 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 158 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 173 of file Thyra_ProductVectorSpaceBase.hpp.
const VectorSpaceBase<Scalar>* Thyra::ProductVectorSpaceBase< Scalar >::spaces [private] |
Definition at line 103 of file Thyra_ProductVectorSpaceBase.hpp.
1.7.4