Thyra Version of the Day
Loading...
Searching...
No Matches
Related Symbols | 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 Symbols

(Note that these are not member symbols.)

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.
 

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.
 

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.
 

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.
 
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.
 
virtual RCP< MultiVectorBase< Scalar > > createCachedMembersView (const RTOpPack::SubMultiVectorView< Scalar > &raw_mv) 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.
 
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.
 
- 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 65 of file Thyra_DefaultMultiVectorProductVectorSpace_decl.hpp.

Constructor & Destructor Documentation

◆ DefaultMultiVectorProductVectorSpace()

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

Construct to an uninitialized state.

Definition at line 57 of file Thyra_DefaultMultiVectorProductVectorSpace_def.hpp.

Member Function Documentation

◆ initialize()

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.

◆ getDefaultProductVectorSpace()

template<class Scalar >
RCP< const DefaultProductVectorSpace< Scalar > > Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::getDefaultProductVectorSpace ( ) const
inline

◆ uninitialize()

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.

◆ numBlocks()

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

◆ getBlock()

template<class Scalar >
Teuchos::RCP< const VectorSpaceBase< Scalar > > Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::getBlock ( const int k) const
virtual

◆ dim()

template<class Scalar >
Ordinal Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::dim ( ) const
virtual

◆ isCompatible()

template<class Scalar >
bool Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::isCompatible ( const VectorSpaceBase< Scalar > & vecSpc) const
virtual

◆ createMember()

template<class Scalar >
Teuchos::RCP< VectorBase< Scalar > > Thyra::DefaultMultiVectorProductVectorSpace< Scalar >::createMember ( ) const
virtual

◆ scalarProd()

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.

◆ scalarProdsImpl()

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.

◆ hasInCoreView()

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.

◆ smallVecSpcFcty()

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

◆ createMembers()

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.

◆ clone()

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.

◆ description()

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.

◆ describe()

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 Symbol Documentation

◆ multiVectorProductVectorSpace() [1/2]

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

Nonmember constructor function.

Definition at line 226 of file Thyra_DefaultMultiVectorProductVectorSpace_decl.hpp.

◆ multiVectorProductVectorSpace() [2/2]

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: