Thyra Version of the Day
Public Member Functions
Thyra::ProductMultiVectorBase< Scalar > Class Template Reference

Base interface for product multi-vectors. More...

#include <Thyra_ProductMultiVectorBase.hpp>

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

List of all members.

Public Member Functions

virtual Teuchos::RCP< const
ProductVectorSpaceBase< Scalar > > 
productSpace () const =0
 Returns the associated product vector space that represents the range.
virtual bool blockIsConst (const int k) const =0
 Return if the kth multi-vector block is const-only.
virtual Teuchos::RCP
< MultiVectorBase< Scalar > > 
getNonconstMultiVectorBlock (const int k)=0
 Returns a non-persisting non-const view of the zero-based kth block multi-vector.
virtual Teuchos::RCP< const
MultiVectorBase< Scalar > > 
getMultiVectorBlock (const int k) const =0
 Returns a non-persisting const view of the (zero-based) kth block multi-vector.

Detailed Description

template<class Scalar>
class Thyra::ProductMultiVectorBase< Scalar >

Base interface for product multi-vectors.

This class defines an abstract interface for a multi-vector that is built out of the one or more other multi-vectors to form a product multi-vector. 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 DefaultProductMultiVector.

ToDo: Finish documentation!

Definition at line 53 of file Thyra_ProductMultiVectorBase.hpp.


Member Function Documentation

template<class Scalar>
virtual Teuchos::RCP<const ProductVectorSpaceBase<Scalar> > Thyra::ProductMultiVectorBase< Scalar >::productSpace ( ) const [pure virtual]

Returns the associated product vector space that represents the range.

If *this is uninitialized then return.get()==NULL.

Implemented in Thyra::DefaultMultiVectorProductVector< Scalar >, Thyra::DefaultProductMultiVector< Scalar >, Thyra::DefaultProductVector< Scalar >, and Thyra::DefaultClusteredSpmdProductVector< Scalar >.

template<class Scalar>
virtual bool Thyra::ProductMultiVectorBase< Scalar >::blockIsConst ( const int  k) const [pure virtual]

Return if the kth multi-vector block is const-only.

Parameters:
k[in] The (zero-based) kth block index specifying which multi-vector block to access.

Preconditions:

Implemented in Thyra::DefaultMultiVectorProductVector< Scalar >, Thyra::DefaultProductMultiVector< Scalar >, Thyra::DefaultProductVector< Scalar >, and Thyra::DefaultClusteredSpmdProductVector< Scalar >.

template<class Scalar>
virtual Teuchos::RCP<MultiVectorBase<Scalar> > Thyra::ProductMultiVectorBase< Scalar >::getNonconstMultiVectorBlock ( const int  k) [pure virtual]

Returns a non-persisting non-const view of the zero-based kth block multi-vector.

Parameters:
k[in] The (zero-based) kth block index specifying which multi-vector block to access.

Preconditions:

Note that *this is not guaranteed to be modified until the smart pointer returned from this function, as well as any other smart pointers created from this smart pointer, are destroyed. This requirement allows more flexibility in how this function is implemented.

Also note that no further interactions with *this should be performed until the view returned from this function is released as described above.

Implemented in Thyra::DefaultMultiVectorProductVector< Scalar >, Thyra::DefaultProductMultiVector< Scalar >, Thyra::DefaultProductVector< Scalar >, and Thyra::DefaultClusteredSpmdProductVector< Scalar >.

template<class Scalar>
virtual Teuchos::RCP<const MultiVectorBase<Scalar> > Thyra::ProductMultiVectorBase< Scalar >::getMultiVectorBlock ( const int  k) const [pure virtual]

Returns a non-persisting const view of the (zero-based) kth block multi-vector.

Parameters:
k[in] The (zero-based) kth block index specifying which multi-vector block to access.

Preconditions:

Implemented in Thyra::DefaultMultiVectorProductVector< Scalar >, Thyra::DefaultProductMultiVector< Scalar >, Thyra::DefaultProductVector< Scalar >, and Thyra::DefaultClusteredSpmdProductVector< Scalar >.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines