Thyra  Version of the Day
Public Member Functions | Related Functions | List of all members
Thyra::ProductVectorSpaceBase< Scalar > Class Template Referenceabstract

More...

#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...
 

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 95 of file Thyra_ProductVectorSpaceBase.hpp.

Member Function Documentation

◆ numBlocks()

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

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

Preconditions:

  • this->dim() > 0.

◆ getBlock()

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:

Friends And Related Function Documentation

◆ nonconstProductVectorSpaceBase() [1/2]

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.

◆ productVectorSpaceBase() [1/2]

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.

◆ nonconstProductVectorSpaceBase() [2/2]

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.

◆ productVectorSpaceBase() [2/2]

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: