Thyra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Related Functions | List of all members
Thyra::DefaultMultiVectorProductVectorSpace< Scalar > Class Template Reference

Standard concrete implementation of a product vector space that creates product vectors fromed implicitly from the columns of a multi-vector. More...

#include <Thyra_DefaultMultiVectorProductVectorSpace_decl.hpp>

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

Related Functions

(Note that these are not member functions.)

template<class Scalar >
RCP
< DefaultMultiVectorProductVectorSpace
< Scalar > > 
multiVectorProductVectorSpace ()
 Nonmember constructor function. More...
 
template<class Scalar >
RCP
< DefaultMultiVectorProductVectorSpace
< Scalar > > 
multiVectorProductVectorSpace (const RCP< const VectorSpaceBase< Scalar > > &space, const int numColumns)
 Nonmember constructor function. More...
 

Constructors/initializers/accessors

 DefaultMultiVectorProductVectorSpace ()
 Construct to an uninitialized state. More...
 
void initialize (const RCP< const VectorSpaceBase< Scalar > > &space, const int numColumns)
 Initialize with a list of constituent vector spaces. More...
 
RCP< const
DefaultProductVectorSpace
< Scalar > > 
getDefaultProductVectorSpace () const
 
void uninitialize (RCP< const VectorSpaceBase< Scalar > > *space=0, int *numColumns=0)
 Uninitialize. More...
 

Overridden from DefaultMultiVectorProductVectorSpace

int numBlocks () const
 
RCP< const VectorSpaceBase
< Scalar > > 
getBlock (const int k) const
 

Overridden from VectorSpaceBase

Ordinal dim () const
 
bool isCompatible (const VectorSpaceBase< Scalar > &vecSpc) const
 
RCP< VectorBase< Scalar > > createMember () const
 Returns a DefaultMultiVectorProductVector object. More...
 
Scalar scalarProd (const VectorBase< Scalar > &x, const VectorBase< Scalar > &y) const
 Returns the sum of the scalar products of the constituent vectors. More...
 
void scalarProdsImpl (const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds) const
 Returns the sum of the scalar products of each of the columns of the constituent multi-vectors. More...
 
bool hasInCoreView (const Range1D &rng, const EViewType viewType, const EStrideType strideType) const
 Returns true if all of the constituent vector spaces return true. More...
 
RCP< const
VectorSpaceFactoryBase< Scalar > > 
smallVecSpcFcty () const
 Returns getBlock(0)->smallVecSpcFcty(). More...
 
RCP< MultiVectorBase< Scalar > > createMembers (int numMembers) const
 Returns a DefaultColumnwiseMultiVector object. More...
 
RCP< const VectorSpaceBase
< Scalar > > 
clone () const
 Clones the object as promised. More...
 

Overridden from Teuchos::Describable

std::string description () const
 Prints just the name DefaultMultiVectorProductVectorSpace along with the overall dimension and the number of blocks. More...
 
void describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
 Prints the details about the constituent vector space. More...
 

Additional Inherited Members

- Public Member Functions inherited from Thyra::VectorSpaceBase< Scalar >
void scalarProds (const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds_out) const
 Return the scalar product of each column in two multi-vectors in the vector space. More...
 
virtual bool isEuclidean () const
 Return if this vector space has a Euclidean (identity) basis in which case the scalar product is the same as the dot product. More...
 
virtual RCP< MultiVectorBase
< Scalar > > 
createCachedMembersView (const RTOpPack::SubMultiVectorView< Scalar > &raw_mv, bool initialize=true) const
 Create a (possibly) cached multi-vector member that is a non-const view of raw multi-vector data. The caching mechanism must be implemented by child classes, by default this just calls the regular createMembersView. More...
 
virtual RCP< const
MultiVectorBase< Scalar > > 
createCachedMembersView (const RTOpPack::ConstSubMultiVectorView< Scalar > &raw_mv) const
 Create a (possibly) cached multi-vector member that is a const view of raw multi-vector data. The caching mechanism must be implemented by child classes, by default this just calls the regular createMembersView. More...
 
- Protected Member Functions inherited from Thyra::VectorSpaceBase< Scalar >
- Protected Member Functions inherited from Thyra::VectorSpaceDefaultBase< Scalar >
RCP< MultiVectorBase< Scalar > > createMembers (int numMembers) const
 
RCP< VectorBase< Scalar > > createMemberView (const RTOpPack::SubVectorView< Scalar > &raw_v) const
 
RCP< const VectorBase< Scalar > > createMemberView (const RTOpPack::ConstSubVectorView< Scalar > &raw_v) const
 
RCP< MultiVectorBase< Scalar > > createMembersView (const RTOpPack::SubMultiVectorView< Scalar > &raw_mv) const
 
RCP< const MultiVectorBase
< Scalar > > 
createMembersView (const RTOpPack::ConstSubMultiVectorView< Scalar > &raw_mv) const
 

Detailed Description

template<class Scalar>
class Thyra::DefaultMultiVectorProductVectorSpace< Scalar >

Standard concrete implementation of a product vector space that creates product vectors fromed implicitly from the columns of a multi-vector.

The default copy constructor is allowed since it has just the right behavior (i.e. shallow copy).

ToDo: Finish Documentation!

Definition at line 55 of file Thyra_DefaultMultiVectorProductVector_decl.hpp.

Constructor & Destructor Documentation

Construct to an uninitialized state.

Definition at line 57 of file Thyra_DefaultMultiVectorProductVectorSpace_def.hpp.

Member Function Documentation

template<class Scalar >
void Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::initialize ( const RCP< const VectorSpaceBase< Scalar > > &  space,
const int  numColumns 
)

Initialize with a list of constituent vector spaces.

Parameters
space[in,persisting] The vector space used to create the multi-vectors.
numColunns[in] The number of columns to create in the multi-vector represented as a product vector.

Preconditions:

  • !is_null(space)
  • numColumns > 0

Postconditions:

  • this->dim() == space->dim() * numColumns
  • this->numBlocks() == numColumns
  • getBlock(i).get() == space.get(), i=0,...,numColumns-1

Definition at line 63 of file Thyra_DefaultMultiVectorProductVectorSpace_def.hpp.

template<class Scalar >
RCP< const DefaultProductVectorSpace< Scalar > > Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::getDefaultProductVectorSpace ( ) const
inline
template<class Scalar >
void Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::uninitialize ( Teuchos::RCP< const VectorSpaceBase< Scalar > > *  space = 0,
int *  numColumns = 0 
)

Uninitialize.

Parameters
numBlocks[out] If numBlocks!=NULL then on output *numBlocks will be set to this->numBlocks().
vecSpaces[out] If vecSpaces!=NULL then vecSpaces must point to an array of length this->numBlocks and on output vecSpace[i] will be set to this->vecSpaces()[i] for i=0,..,this->numBlocks()-1.

Postconditions:

Warning! If this->hasBeenCloned()==true then the client had better not mess with the constituent vector spaces returned in vecSpaces[] since another DefaultMultiVectorProductVectorSpace object is still using them.

Definition at line 79 of file Thyra_DefaultMultiVectorProductVectorSpace_def.hpp.

template<class Scalar >
int Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::numBlocks ( ) const
virtual
template<class Scalar >
Teuchos::RCP< const VectorSpaceBase< Scalar > > Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::getBlock ( const int  k) const
virtual
template<class Scalar >
Ordinal Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::dim ( ) const
virtual
template<class Scalar >
bool Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::isCompatible ( const VectorSpaceBase< Scalar > &  vecSpc) const
virtual
template<class Scalar >
Teuchos::RCP< VectorBase< Scalar > > Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::createMember ( ) const
virtual
template<class Scalar >
Scalar Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::scalarProd ( const VectorBase< Scalar > &  x,
const VectorBase< Scalar > &  y 
) const
virtual

Returns the sum of the scalar products of the constituent vectors.

Implements Thyra::VectorSpaceBase< Scalar >.

Definition at line 148 of file Thyra_DefaultMultiVectorProductVectorSpace_def.hpp.

template<class Scalar >
void Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::scalarProdsImpl ( const MultiVectorBase< Scalar > &  X,
const MultiVectorBase< Scalar > &  Y,
const ArrayView< Scalar > &  scalarProds 
) const
virtual

Returns the sum of the scalar products of each of the columns of the constituent multi-vectors.

Implements Thyra::VectorSpaceBase< Scalar >.

Definition at line 159 of file Thyra_DefaultMultiVectorProductVectorSpace_def.hpp.

template<class Scalar >
bool Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::hasInCoreView ( const Range1D rng,
const EViewType  viewType,
const EStrideType  strideType 
) const
virtual

Returns true if all of the constituent vector spaces return true.

Reimplemented from Thyra::VectorSpaceBase< Scalar >.

Definition at line 171 of file Thyra_DefaultMultiVectorProductVectorSpace_def.hpp.

template<class Scalar >
Teuchos::RCP< const VectorSpaceFactoryBase< Scalar > > Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::smallVecSpcFcty ( ) const
virtual
template<class Scalar >
Teuchos::RCP< MultiVectorBase< Scalar > > Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::createMembers ( int  numMembers) const
virtual

Returns a DefaultColumnwiseMultiVector object.

ToDo: It is possible an general and well optimized multi-vector implementation called something like MultiVectorProducMultiVector. This would require that you create an underlying multi-vector with numBlocks*numMembers total columns. However, this class is not needed at this time so it is not provided.

Implements Thyra::VectorSpaceBase< Scalar >.

Definition at line 189 of file Thyra_DefaultMultiVectorProductVectorSpace_def.hpp.

template<class Scalar >
Teuchos::RCP< const VectorSpaceBase< Scalar > > Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::clone ( ) const
virtual

Clones the object as promised.

Reimplemented from Thyra::VectorSpaceBase< Scalar >.

Definition at line 199 of file Thyra_DefaultMultiVectorProductVectorSpace_def.hpp.

template<class Scalar >
std::string Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::description ( ) const
virtual

Prints just the name DefaultMultiVectorProductVectorSpace along with the overall dimension and the number of blocks.

Reimplemented from Teuchos::Describable.

Definition at line 217 of file Thyra_DefaultMultiVectorProductVectorSpace_def.hpp.

template<class Scalar >
void Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::describe ( Teuchos::FancyOStream out,
const Teuchos::EVerbosityLevel  verbLevel 
) const
virtual

Prints the details about the constituent vector space.

This function outputs different levels of detail based on the value passed in for verbLevel:

ToDo: Finish documentation!

Reimplemented from Teuchos::Describable.

Definition at line 230 of file Thyra_DefaultMultiVectorProductVectorSpace_def.hpp.

Friends And Related Function Documentation

template<class Scalar >
RCP< DefaultMultiVectorProductVectorSpace< Scalar > > multiVectorProductVectorSpace ( )
related

Nonmember constructor function.

Definition at line 226 of file Thyra_DefaultMultiVectorProductVectorSpace_decl.hpp.

template<class Scalar >
RCP< DefaultMultiVectorProductVectorSpace< Scalar > > multiVectorProductVectorSpace ( const RCP< const VectorSpaceBase< Scalar > > &  space,
const int  numColumns 
)
related

Nonmember constructor function.

Definition at line 239 of file Thyra_DefaultMultiVectorProductVectorSpace_decl.hpp.


The documentation for this class was generated from the following files: