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

Node VectorSpaceBase subclass that provides default implementations for many functions using a default multi-vectors implementation. More...

#include <Thyra_VectorSpaceDefaultBaseDecl.hpp>

Inheritance diagram for Thyra::VectorSpaceDefaultBase< Scalar >:

[legend]
List of all members.

Protected functions overridden from VectorSpaceBase

Teuchos::RefCountPtr< MultiVectorBase<
Scalar > > 
createMembers (int numMembers) const
 
Teuchos::RefCountPtr< VectorBase<
Scalar > > 
createMemberView (const RTOpPack::SubVectorView< Scalar > &raw_v) const
 
Teuchos::RefCountPtr< const
VectorBase< Scalar > > 
createMemberView (const RTOpPack::ConstSubVectorView< Scalar > &raw_v) const
 
Teuchos::RefCountPtr< MultiVectorBase<
Scalar > > 
createMembersView (const RTOpPack::SubMultiVectorView< Scalar > &raw_mv) const
 
Teuchos::RefCountPtr< const
MultiVectorBase< Scalar > > 
createMembersView (const RTOpPack::ConstSubMultiVectorView< Scalar > &raw_mv) const
 

Detailed Description

template<class Scalar>
class Thyra::VectorSpaceDefaultBase< Scalar >

Node VectorSpaceBase subclass that provides default implementations for many functions using a default multi-vectors implementation.

Notes to Subclass Developers

Because of the default multi-vector implementation used in this node subclasses, a concrete subclass is only required to override four functions: dim(), isCompatible(), createMember() and <tt.smallVecSpcFcty(). Note that implementing the createMember() method also entails defining a concrete VectorBase subclass and defining smallVecSpcFcty() entails defining a concrete VectorSpaceFactoryBase subclass.

If a subclass can support specialized multi-vectors, then the createMembers() function should be overridden as well. Note that implementing createMembers() also entails defining a concrete MultiVectorBase subclass.

Definition at line 58 of file Thyra_VectorSpaceDefaultBaseDecl.hpp.


Member Function Documentation

template<class Scalar>
Teuchos::RefCountPtr< MultiVectorBase< Scalar > > Thyra::VectorSpaceDefaultBase< Scalar >::createMembers int  numMembers  )  const [protected, virtual]
 

The default implementation returns dynamic_cast< DefaultColumnwiseMultiVector<Scalar> >(return.get())!=NULL.

Implements Thyra::VectorSpaceBase< Scalar >.

Reimplemented in Thyra::DefaultProductVectorSpace< Scalar >, Thyra::DefaultClusteredSpmdProductVectorSpace< Scalar >, and Thyra::DefaultSpmdVectorSpace< Scalar >.

Definition at line 82 of file Thyra_VectorSpaceDefaultBase.hpp.

template<class Scalar>
Teuchos::RefCountPtr< VectorBase< Scalar > > Thyra::VectorSpaceDefaultBase< Scalar >::createMemberView const RTOpPack::SubVectorView< Scalar > &  raw_v  )  const [protected, virtual]
 

The default implementation of this function simply calls this->createMember() to create a vector then uses the explicit element access functions to set the elements and then only when the vector is destroyed is the data copied out of the vector and back into the elements pointed to by raw_v.values().

Implements Thyra::VectorSpaceBase< Scalar >.

Reimplemented in Thyra::DefaultSpmdVectorSpace< Scalar >.

Definition at line 89 of file Thyra_VectorSpaceDefaultBase.hpp.

template<class Scalar>
Teuchos::RefCountPtr< const VectorBase< Scalar > > Thyra::VectorSpaceDefaultBase< Scalar >::createMemberView const RTOpPack::ConstSubVectorView< Scalar > &  raw_v  )  const [protected, virtual]
 

The default implementation of this function simply calls this->createMember() to create a vector then uses the explicit element access functions to set the elements from raw_v.values().

Implements Thyra::VectorSpaceBase< Scalar >.

Reimplemented in Thyra::DefaultSpmdVectorSpace< Scalar >.

Definition at line 113 of file Thyra_VectorSpaceDefaultBase.hpp.

template<class Scalar>
Teuchos::RefCountPtr< MultiVectorBase< Scalar > > Thyra::VectorSpaceDefaultBase< Scalar >::createMembersView const RTOpPack::SubMultiVectorView< Scalar > &  raw_mv  )  const [protected, virtual]
 

The default implementation of this function simply calls this->createMembers(raw_mv.numSubCols()) to create a multi-vector then uses the explicit element access functions to set the elements and then only when the multi-vector is destroyed is the data copied out of the multi-vector and back into the elements pointed to by raw_mv.values().

Implements Thyra::VectorSpaceBase< Scalar >.

Reimplemented in Thyra::DefaultSpmdVectorSpace< Scalar >.

Definition at line 130 of file Thyra_VectorSpaceDefaultBase.hpp.

template<class Scalar>
Teuchos::RefCountPtr< const MultiVectorBase< Scalar > > Thyra::VectorSpaceDefaultBase< Scalar >::createMembersView const RTOpPack::ConstSubMultiVectorView< Scalar > &  raw_mv  )  const [protected, virtual]
 

The default implementation of this function simply calls this->createMembers() to create a multi-vector then uses the explicit element access functions to set the elements.

Implements Thyra::VectorSpaceBase< Scalar >.

Reimplemented in Thyra::DefaultSpmdVectorSpace< Scalar >.

Definition at line 154 of file Thyra_VectorSpaceDefaultBase.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 doxygen 1.3.9.1