# Thyra::VectorSpace< Scalar > Class Template Reference [Development of linear Abstract Numerical Algorithms (ANAs)]

Handle class for `VectorSpaceBase`. More...

`#include <Thyra_VectorSpaceDecl.hpp>`

Inheritance diagram for Thyra::VectorSpace< Scalar >:

[legend]
List of all members.

## Public Member Functions

Vector< Scalar > createMember () const
Create a new element of this vector space.
Teuchos::RefCountPtr< MultiVectorBase<
Scalar > >
createMembers (int n) const
Create a multivector in this vector space.
int dim () const
Return the dimension of the space.
bool isCompatible (const VectorSpace< Scalar > &vecSpc) const
Check compatibility with another space.
bool isInCore () const
Tell if vectors of this space are in core.
bool operator== (const VectorSpace< Scalar > &other) const
Test equality between two spaces.
bool operator!= (const VectorSpace< Scalar > &other) const
Test inequality of two spaces.
bool contains (const Vector< Scalar > &vec) const
Test whether the space contains a given vector.
int numBlocks () const
Return the number of vector space subblocks.
VectorSpace< Scalar > getBlock (int k) const
Get the k-th subblock where (`0 <= k < numBlocks()`).
void setBlock (int k, const VectorSpace< Scalar > &space)
Set the k-th subblock where (`0 <= k < numBlocks()`).

## Related Functions

(Note that these are not member functions.)

Vector< Scalar > createMember (const VectorSpace< Scalar > &space)
Create a member.
Teuchos::RefCountPtr< const
VectorSpaceBase< Scalar > >
productSpace (const Teuchos::Array< VectorSpace< Scalar > > &spaces)
Create a product space given an array of vector spaces blocks.
Teuchos::RefCountPtr< const
VectorSpaceBase< Scalar > >
productSpace (VectorSpace< Scalar > &s1)
Create a product space given a single vector space block.
Teuchos::RefCountPtr< const
VectorSpaceBase< Scalar > >
productSpace (VectorSpace< Scalar > &s1, VectorSpace< Scalar > &s2)
Create a product space given two vector space blocks.
Teuchos::RefCountPtr< const
VectorSpaceBase< Scalar > >
productSpace (VectorSpace< Scalar > &s1, VectorSpace< Scalar > &s2, VectorSpace< Scalar > &s3)
Create a product space given three vector space blocks.
int lowestLocallyOwnedIndex (const VectorSpace< Scalar > &s)
Returns the lowest global index accessible on this processor. This function will throw an exception if the space is not a SpmdVectorSpaceBase.
int numLocalElements (const VectorSpace< Scalar > &s)
Return the number of elements owned by this processor. This function will throw an exception if the space is not a SpmdVectorSpaceBase.
bool indexIsLocal (const VectorSpace< Scalar > &s, Index i)
Test whether a specified index is local to this processor.
bool isSPMD (const VectorSpace< Scalar > &s)
Test whether a vector space is an atomic SPMD object.

## Detailed Description

### template<class Scalar> class Thyra::VectorSpace< Scalar >

Handle class for `VectorSpaceBase`.
Examples:

Definition at line 46 of file Thyra_VectorSpaceDecl.hpp.

## Member Function Documentation

 template Vector< Scalar > Thyra::VectorSpace< Scalar >::createMember ( ) const` [inline]`
 Create a new element of this vector space. Definition at line 59 of file Thyra_VectorSpaceImpl.hpp.

 template RefCountPtr< MultiVectorBase< Scalar > > Thyra::VectorSpace< Scalar >::createMembers ( int n ) const` [inline]`
 Create a multivector in this vector space. Note: There is not yet a handle class for multi-vectors yet and therefore this function returns `Teuchos::RefCountPtr` object to the created raw `MultiVectorBase` object. In the future, this will be replaced to return a true `Thyra::MultiVector` handle object onces this class is created. Definition at line 66 of file Thyra_VectorSpaceImpl.hpp.

 template int Thyra::VectorSpace< Scalar >::dim ( ) const` [inline]`
 Return the dimension of the space. Definition at line 65 of file Thyra_VectorSpaceDecl.hpp.

 template bool Thyra::VectorSpace< Scalar >::isCompatible ( const VectorSpace< Scalar > & vecSpc ) const` [inline]`
 Check compatibility with another space. Implementation note: we don't know if the argument vec space is a handle to another vector space or the contents of a handle, and we want the operation to work the same in either case. We can make this work as follows: have the argument check compatibility with the contents of this handle. If the argument is a handle, the process will be repeated, interchanging places again so that both handles are dereferenced. If the argument is not a handle, then it ends up comparing to the concrete contents of this handle, giving the same results. Definition at line 73 of file Thyra_VectorSpaceImpl.hpp.

 template bool Thyra::VectorSpace< Scalar >::isInCore ( ) const` [inline]`
 Tell if vectors of this space are in core. Definition at line 80 of file Thyra_VectorSpaceDecl.hpp.

 template bool Thyra::VectorSpace< Scalar >::operator== ( const VectorSpace< Scalar > & other ) const` [inline]`
 Test equality between two spaces. Definition at line 45 of file Thyra_VectorSpaceImpl.hpp.

 template bool Thyra::VectorSpace< Scalar >::operator!= ( const VectorSpace< Scalar > & other ) const` [inline]`
 Test inequality of two spaces. Definition at line 52 of file Thyra_VectorSpaceImpl.hpp.

 template bool Thyra::VectorSpace< Scalar >::contains ( const Vector< Scalar > & vec ) const` [inline]`
 Test whether the space contains a given vector. Definition at line 82 of file Thyra_VectorSpaceImpl.hpp.

 template int Thyra::VectorSpace< Scalar >::numBlocks ( ) const` [inline]`
 Return the number of vector space subblocks. Definition at line 89 of file Thyra_VectorSpaceImpl.hpp.

 template VectorSpace< Scalar > Thyra::VectorSpace< Scalar >::getBlock ( int k ) const` [inline]`
 Get the k-th subblock where (`0 <= k < numBlocks()`). Definition at line 102 of file Thyra_VectorSpaceImpl.hpp.

 template void Thyra::VectorSpace< Scalar >::setBlock ( int k, const VectorSpace< Scalar > & space )
 Set the k-th subblock where (`0 <= k < numBlocks()`).

## Friends And Related Function Documentation

 template Vector< Scalar > createMember ( const VectorSpace< Scalar > & space ) ` [related]`
 Create a member. Definition at line 107 of file Thyra_VectorSpaceDecl.hpp.

 template Teuchos::RefCountPtr< const VectorSpaceBase< Scalar > > productSpace ( const Teuchos::Array< VectorSpace< Scalar > > & spaces ) ` [related]`
 Create a product space given an array of vector spaces blocks. Definition at line 134 of file Thyra_VectorSpaceImpl.hpp.

 template Teuchos::RefCountPtr< const VectorSpaceBase< Scalar > > productSpace ( VectorSpace< Scalar > & s1 ) ` [related]`
 Create a product space given a single vector space block. Definition at line 147 of file Thyra_VectorSpaceImpl.hpp.

 template Teuchos::RefCountPtr< const VectorSpaceBase< Scalar > > productSpace ( VectorSpace< Scalar > & s1, VectorSpace< Scalar > & s2 ) ` [related]`
 Create a product space given two vector space blocks. Definition at line 155 of file Thyra_VectorSpaceImpl.hpp.

 template Teuchos::RefCountPtr< const VectorSpaceBase< Scalar > > productSpace ( VectorSpace< Scalar > & s1, VectorSpace< Scalar > & s2, VectorSpace< Scalar > & s3 ) ` [related]`
 Create a product space given three vector space blocks. Definition at line 164 of file Thyra_VectorSpaceImpl.hpp.

 template int lowestLocallyOwnedIndex ( const VectorSpace< Scalar > & s ) ` [related]`
 Returns the lowest global index accessible on this processor. This function will throw an exception if the space is not a SpmdVectorSpaceBase. Preconditions: `isSPMD(s)==true` Definition at line 172 of file Thyra_VectorSpaceImpl.hpp.

 template int numLocalElements ( const VectorSpace< Scalar > & s ) ` [related]`
 Return the number of elements owned by this processor. This function will throw an exception if the space is not a SpmdVectorSpaceBase. Preconditions: `isSPMD(s)==true` Definition at line 182 of file Thyra_VectorSpaceImpl.hpp.

 template bool indexIsLocal ( const VectorSpace< Scalar > & s, Index i ) ` [related]`
 Test whether a specified index is local to this processor. Definition at line 199 of file Thyra_VectorSpaceImpl.hpp.

 template bool isSPMD ( const VectorSpace< Scalar > & s ) ` [related]`
 Test whether a vector space is an atomic SPMD object. Definition at line 192 of file Thyra_VectorSpaceImpl.hpp.

The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:32:33 2008 for Thyra Operator/Vector Support by  1.3.9.1