#include <Thyra_ProductVectorBase.hpp>
Inheritance diagram for Thyra::ProductVectorBase< Scalar >:
Public Member Functions | |
virtual Teuchos::RCP< VectorBase< Scalar > > | getNonconstVectorBlock (const int k)=0 |
Returns a non-persisting non-const view of the (zero-based) k th block vector. | |
virtual Teuchos::RCP< const VectorBase< Scalar > > | getVectorBlock (const int k) const =0 |
Returns a non-persisting const view of the (zero-based) k th block vector. |
This class defines an abstract interface for a vector that is built out of the one or more other vectors to form what mathematicians like to call a "product vector".
A product vector is simply the concatenation of two or more vectors to form a larger "composite" vector. Specifically, a product vector with numBlock
constituent block vectors represents the blocked vector
[ v[0] ] [ v[1] ] this = [ . ] [ v[numBlocks-1] ]
The constituent vectors v[k]
can be accessed through the const
and non-const
access functions getBlock()
.
A product vector knows its product space which is returned by the productSpace() function. A ProductVectorBase
object is created by a ProductVectorSpaceBase
object and never directly created by clients.
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 DefaultProductVector
.
Definition at line 71 of file Thyra_ProductVectorBase.hpp.
virtual Teuchos::RCP<VectorBase<Scalar> > Thyra::ProductVectorBase< Scalar >::getNonconstVectorBlock | ( | const int | k | ) | [pure virtual] |
Returns a non-persisting non-const
view of the (zero-based) k
th block vector.
k | [in] The (zero-based) k th block index specifying which vector block to access. |
productSpace().get()!=NULL
0 <= k && k < productSpace()->numBlocks()
blockIsConst(k)==false
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.
virtual Teuchos::RCP<const VectorBase<Scalar> > Thyra::ProductVectorBase< Scalar >::getVectorBlock | ( | const int | k | ) | const [pure virtual] |
Returns a non-persisting const
view of the (zero-based) k
th block vector.
k | [in] The (zero-based) k th block index specifying which vectorblock to access. |
productSpace().get()!=NULL
0 <= k <= productSpace()->numBlocks()-1tt>