Thyra Version of the Day
Related Functions
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]

List of all members.

Related Functions

(Note that these are not member functions.)

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

Constructors/initializers/accessors

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

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.
Scalar scalarProd (const VectorBase< Scalar > &x, const VectorBase< Scalar > &y) const
 Returns the sum of the scalar products of the constituent vectors.
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.
bool hasInCoreView (const Range1D &rng, const EViewType viewType, const EStrideType strideType) const
 Returns true if all of the constituent vector spaces return true.
RCP< const
VectorSpaceFactoryBase< Scalar > > 
smallVecSpcFcty () const
 Returns getBlock(0)->smallVecSpcFcty().
RCP< MultiVectorBase< Scalar > > createMembers (int numMembers) const
 Returns a DefaultColumnwiseMultiVector object.
RCP< const VectorSpaceBase
< Scalar > > 
clone () const
 Clones the object as promised.

Overridden from Teuchos::Describable

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

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 52 of file Thyra_DefaultMultiVectorProductVectorSpace_decl.hpp.


Constructor & Destructor Documentation

Construct to an uninitialized state.

Definition at line 44 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 50 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 66 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 135 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 146 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 158 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.

Reimplemented from Thyra::VectorSpaceDefaultBase< Scalar >.

Definition at line 176 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 186 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 204 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 217 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 213 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 226 of file Thyra_DefaultMultiVectorProductVectorSpace_decl.hpp.


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