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

Convenient node subclass for concrete VectorBase subclasses that relies on a default MultiVectorBase implementation. More...

#include <Thyra_VectorDefaultBaseDecl.hpp>

Inheritance diagram for Thyra::VectorDefaultBase< Scalar >:

[legend]
List of all members.

Public functions overridden from Teuchos::Describable

void describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
 Generates a default outputting for all vectors.

Overridden from LinearOpBase (should never need to be overridden in subclasses)

Teuchos::RefCountPtr< const
VectorSpaceBase< Scalar > > 
range () const
 Returns this->space().
Teuchos::RefCountPtr< const
VectorSpaceBase< Scalar > > 
domain () const
 Returns a DefaultSerialVectorSpace object with dimension 1.

Overridden from MultiVectorBase (should never need to be overridden in subclasses)

Teuchos::RefCountPtr< VectorBase<
Scalar > > 
col (Index j)
 Returns Teuchos::rcp(this,false).
Teuchos::RefCountPtr< MultiVectorBase<
Scalar > > 
clone_mv () const
 Returns this->clone_v().
Teuchos::RefCountPtr< const
MultiVectorBase< Scalar > > 
subView (const Range1D &col_rng) const
 Returns Teuchos::rcp(this,false).
Teuchos::RefCountPtr< MultiVectorBase<
Scalar > > 
subView (const Range1D &col_rng)
 Returns Teuchos::rcp(this,false).
Teuchos::RefCountPtr< const
MultiVectorBase< Scalar > > 
subView (const int numCols, const int cols[]) const
 Returns Teuchos::rcp(this,false).
Teuchos::RefCountPtr< MultiVectorBase<
Scalar > > 
subView (const int numCols, const int cols[])
 Returns Teuchos::rcp(this,false).
void acquireDetachedView (const Range1D &rowRng, const Range1D &colRng, RTOpPack::ConstSubMultiVectorView< Scalar > *sub_mv) const
 Implemented in terms of this->acquireDetachedView().
void releaseDetachedView (RTOpPack::ConstSubMultiVectorView< Scalar > *sub_mv) const
 Implemented in terms of this->releaseDetachedView().
void acquireDetachedView (const Range1D &rowRng, const Range1D &colRng, RTOpPack::SubMultiVectorView< Scalar > *sub_mv)
 Implemented in terms of this->acquireDetachedView().
void commitDetachedView (RTOpPack::SubMultiVectorView< Scalar > *sub_mv)
 Implemented in terms of this->commitDetachedView().

Overridden from VectorBase

Teuchos::RefCountPtr< VectorBase<
Scalar > > 
clone_v () const
 Simply creates a new vector and copies the contents from *this.
virtual void acquireDetachedView (const Range1D &rng, RTOpPack::ConstSubVectorView< Scalar > *sub_vec) const
 
virtual void releaseDetachedView (RTOpPack::ConstSubVectorView< Scalar > *sub_vec) const
 
virtual void acquireDetachedView (const Range1D &rng, RTOpPack::SubVectorView< Scalar > *sub_vec)
 
virtual void commitDetachedView (RTOpPack::SubVectorView< Scalar > *sub_vec)
 
virtual void setSubVector (const RTOpPack::SparseSubVectorT< Scalar > &sub_vec)
 

Overridden from SingleRhsLinearOpBase (should never need to be overridden in subclasses)

bool opSupported (ETransp M_trans) const
 For complex Scalar types returns true for NOTRANS and CONJTRANS and for real types returns true for all values of M_trans.
void apply (const ETransp M_trans, const VectorBase< Scalar > &x, VectorBase< Scalar > *y, const Scalar alpha, const Scalar beta) const
 . Applies vector or its adjoint (transpose) as a linear operator.

Detailed Description

template<class Scalar>
class Thyra::VectorDefaultBase< Scalar >

Convenient node subclass for concrete VectorBase subclasses that relies on a default MultiVectorBase implementation.

This node subclass provides as many default implementations as possible for virtual functions based on the default multi-vector implementation DefaultColumnwiseMultiVector.

Notes for subclass developers

In order to create a concrete subclass of this interface, only two operations must be overridden: space() and applyOp(). Overriding the space() operation requires defining a concrete VectorSpaceBase class (which has only three pure virtual operations if using VectorSpaceDefaultBase).

Note that all of the inherited LinearOpBase and MultiVectorBase functions are overridden in this subclass and are given perfectly good implementations. Therefore, a concrete subclass of VectorDefaultBase should not have to re-override any of these functions.

Definition at line 63 of file Thyra_VectorDefaultBaseDecl.hpp.


Member Function Documentation

template<class Scalar>
void Thyra::VectorDefaultBase< Scalar >::describe Teuchos::FancyOStream out,
const Teuchos::EVerbosityLevel  verbLevel
const
 

Generates a default outputting for all vectors.

Calls on the this->describe(void) function for the name of the class (and possibly its instance name) and then if verbLevel>=VERB_HIGH, then the vector elements themselves are printed as well. The format of the output is is shown below:


   type = 'this->description()', size = n
     0:x1
     1:x2
     .
     .
     .
     n-1:xn
   

The index:value lines are offset an additional Teuchos::OSTab amount. A newline is printed after the last n-1:xn entry.

Reimplemented from Thyra::LinearOpDefaultBase< Scalar >.

Definition at line 58 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
Teuchos::RefCountPtr< const VectorSpaceBase< Scalar > > Thyra::VectorDefaultBase< Scalar >::range  )  const
 

Returns this->space().

Reimplemented in Thyra::DefaultVectorMultiVector< Scalar >.

Definition at line 85 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
Teuchos::RefCountPtr< const VectorSpaceBase< Scalar > > Thyra::VectorDefaultBase< Scalar >::domain  )  const
 

Returns a DefaultSerialVectorSpace object with dimension 1.

Reimplemented in Thyra::DefaultVectorMultiVector< Scalar >.

Definition at line 96 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
Teuchos::RefCountPtr< VectorBase< Scalar > > Thyra::VectorDefaultBase< Scalar >::col Index  j  ) 
 

Returns Teuchos::rcp(this,false).

Reimplemented in Thyra::DefaultVectorMultiVector< Scalar >.

Definition at line 204 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
Teuchos::RefCountPtr< MultiVectorBase< Scalar > > Thyra::VectorDefaultBase< Scalar >::clone_mv  )  const [virtual]
 

Returns this->clone_v().

Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.

Reimplemented in Thyra::DefaultVectorMultiVector< Scalar >.

Definition at line 218 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
Teuchos::RefCountPtr< const MultiVectorBase< Scalar > > Thyra::VectorDefaultBase< Scalar >::subView const Range1D col_rng  )  const
 

Returns Teuchos::rcp(this,false).

Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.

Reimplemented in Thyra::DefaultVectorMultiVector< Scalar >.

Definition at line 229 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
Teuchos::RefCountPtr< MultiVectorBase< Scalar > > Thyra::VectorDefaultBase< Scalar >::subView const Range1D col_rng  ) 
 

Returns Teuchos::rcp(this,false).

Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.

Reimplemented in Thyra::DefaultVectorMultiVector< Scalar >.

Definition at line 241 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
Teuchos::RefCountPtr< const MultiVectorBase< Scalar > > Thyra::VectorDefaultBase< Scalar >::subView const int  numCols,
const int  cols[]
const
 

Returns Teuchos::rcp(this,false).

Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.

Reimplemented in Thyra::DefaultVectorMultiVector< Scalar >.

Definition at line 253 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
Teuchos::RefCountPtr< MultiVectorBase< Scalar > > Thyra::VectorDefaultBase< Scalar >::subView const int  numCols,
const int  cols[]
 

Returns Teuchos::rcp(this,false).

Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.

Reimplemented in Thyra::DefaultVectorMultiVector< Scalar >.

Definition at line 265 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
void Thyra::VectorDefaultBase< Scalar >::acquireDetachedView const Range1D rowRng,
const Range1D colRng,
RTOpPack::ConstSubMultiVectorView< Scalar > *  sub_mv
const [virtual]
 

Implemented in terms of this->acquireDetachedView().

Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.

Reimplemented in Thyra::DefaultVectorMultiVector< Scalar >.

Definition at line 276 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
void Thyra::VectorDefaultBase< Scalar >::releaseDetachedView RTOpPack::ConstSubMultiVectorView< Scalar > *  sub_mv  )  const [virtual]
 

Implemented in terms of this->releaseDetachedView().

Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.

Reimplemented in Thyra::DefaultVectorMultiVector< Scalar >.

Definition at line 299 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
void Thyra::VectorDefaultBase< Scalar >::acquireDetachedView const Range1D rowRng,
const Range1D colRng,
RTOpPack::SubMultiVectorView< Scalar > *  sub_mv
[virtual]
 

Implemented in terms of this->acquireDetachedView().

Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.

Reimplemented in Thyra::DefaultVectorMultiVector< Scalar >.

Definition at line 314 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
void Thyra::VectorDefaultBase< Scalar >::commitDetachedView RTOpPack::SubMultiVectorView< Scalar > *  sub_mv  )  [virtual]
 

Implemented in terms of this->commitDetachedView().

Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.

Reimplemented in Thyra::DefaultVectorMultiVector< Scalar >.

Definition at line 337 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
Teuchos::RefCountPtr< VectorBase< Scalar > > Thyra::VectorDefaultBase< Scalar >::clone_v  )  const
 

Simply creates a new vector and copies the contents from *this.

Definition at line 355 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
void Thyra::VectorDefaultBase< Scalar >::acquireDetachedView const Range1D rng,
RTOpPack::ConstSubVectorView< Scalar > *  sub_vec
const [virtual]
 

This implementation is based on a vector reduction operator class (see RTOpPack::ROpGetSubVector) and calls applyOp(). Note that the footprint of the reduction object (both internal and external state) will be O(rng.size()). For serial applications this is fairly reasonable and will not be a major performance penalty. For parallel applications, however, this is a terrible implementation and must be overridden if rng.size() is large at all. Although, this function should not even be used in case where the vector is very large. If a subclass does override this function, it must also override releaseDetachedView() which has a implementation which is a companion to this function's implementation.

Reimplemented in Thyra::DefaultProductVector< Scalar >, Thyra::DefaultVectorMultiVector< Scalar >, and Thyra::SpmdVectorBase< Scalar >.

Definition at line 367 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
void Thyra::VectorDefaultBase< Scalar >::releaseDetachedView RTOpPack::ConstSubVectorView< Scalar > *  sub_vec  )  const [virtual]
 

This implementation is a companion to the implementation for the non-const version of acquireDetachedView(). If acquireDetachedView() is overridden by a subclass then this function must be overridden also!

Reimplemented in Thyra::DefaultProductVector< Scalar >, Thyra::DefaultVectorMultiVector< Scalar >, and Thyra::SpmdVectorBase< Scalar >.

Definition at line 400 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
void Thyra::VectorDefaultBase< Scalar >::acquireDetachedView const Range1D rng,
RTOpPack::SubVectorView< Scalar > *  sub_vec
[virtual]
 

This implementation is based on a vector reduction operator class (see RTOpPack::ROpGetSubVector) and calls applyOp(). Note that the footprint of the reduction object (both internal and external state) will be O(rng.size()). For serial applications this is fairly reasonable and will not be a major performance penalty. For parallel applications, this will be a terrible thing to do and must be overridden if rng.size() is large at all. If a subclass does override this function, it must also override commitDetachedView() which has a implementation which is a companion to this function's implementation.

Reimplemented in Thyra::DefaultProductVector< Scalar >, Thyra::DefaultVectorMultiVector< Scalar >, and Thyra::SpmdVectorBase< Scalar >.

Definition at line 407 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
void Thyra::VectorDefaultBase< Scalar >::commitDetachedView RTOpPack::SubVectorView< Scalar > *  sub_vec  )  [virtual]
 

This function has an implementation which is a companion to the implementation for acquireDetachedView(). If acquireDetachedView() is overridden by a subclass then this function must be overridden also!

Reimplemented in Thyra::DefaultProductVector< Scalar >, Thyra::DefaultVectorMultiVector< Scalar >, and Thyra::SpmdVectorBase< Scalar >.

Definition at line 425 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
void Thyra::VectorDefaultBase< Scalar >::setSubVector const RTOpPack::SparseSubVectorT< Scalar > &  sub_vec  )  [virtual]
 

This implementation uses a transformation operator class (see RTOpPack::TOpSetSubVector) and calls applyOp(). Be forewarned however, that the operator objects state data (both internal and external) will be order O(sub_vec.subNz()). For serial applications, this is entirely adequate. For parallel applications this may be bad!

Reimplemented in Thyra::DefaultProductVector< Scalar >.

Definition at line 438 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
bool Thyra::VectorDefaultBase< Scalar >::opSupported ETransp  M_trans  )  const [protected, virtual]
 

For complex Scalar types returns true for NOTRANS and CONJTRANS and for real types returns true for all values of M_trans.

Implements Thyra::SingleScalarLinearOpBase< Scalar >.

Reimplemented in Thyra::DefaultVectorMultiVector< Scalar >.

Definition at line 111 of file Thyra_VectorDefaultBase.hpp.

template<class Scalar>
void Thyra::VectorDefaultBase< Scalar >::apply const ETransp  M_trans,
const VectorBase< Scalar > &  x,
VectorBase< Scalar > *  y,
const Scalar  alpha,
const Scalar  beta
const [protected, virtual]
 

. Applies vector or its adjoint (transpose) as a linear operator.

Implements Thyra::SingleRhsLinearOpBase< Scalar >.

Definition at line 118 of file Thyra_VectorDefaultBase.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