Thyra::SerialVectorStd< Scalar > Class Template Reference
[Efficient Generic Serial Concrete Thyra Operator/Vector Subclass Implementations]

General concrete VectorBase implementation of serial vectors. More...

#include <Thyra_SerialVectorStdDecl.hpp>

Inheritance diagram for Thyra::SerialVectorStd< Scalar >:

[legend]
List of all members.

Constructors/initializers

 SerialVectorStd (const Teuchos::RefCountPtr< const VectorSpaceBase< Scalar > > &vecSpc)
 Calls this->initialize(vecSpc).
 SerialVectorStd (const Index dim=0)
 Calls this->initialize(dim).
 SerialVectorStd (const Teuchos::RefCountPtr< Scalar > &v, const Index vs, const Index dim, const Teuchos::RefCountPtr< const VectorSpaceBase< Scalar > > &vecSpc=Teuchos::null)
 Calls this->initialize(v,vs,dim,vecSpc).
void initialize (const Teuchos::RefCountPtr< const VectorSpaceBase< Scalar > > &vecSpc)
 Call this->initialize(v,vs,vecSpc) with internally dynamically allocated data v.
void initialize (const Index dim)
 Call this->initialize(v,vs,true) with internally dynamically allocated data v.
virtual void initialize (const Teuchos::RefCountPtr< Scalar > &v, const Index vs, const Index dim, const Teuchos::RefCountPtr< const VectorSpaceBase< Scalar > > &vecSpc=Teuchos::null)
 Initialize with storage.

Accessors (inlined for minimal overhead)

Teuchos::RefCountPtr< Scalar > getRCPtr ()
 Return non-const smart pointer to underlying data.
Teuchos::RefCountPtr< const
Scalar > 
getRCPtr () const
 Return const smart pointer to underlying data.
Scalar * getPtr ()
 Return non-const raw pointer to underlying data.
const Scalar * getPtr () const
 Return const raw pointer to underlying data.
Index getStride () const
 Return the stride between entries returned from getPtr().
Index getDim () const
 Inline call to return dimension.

Overridden from SerialVectorBase

void getData (Scalar **values, Index *stride)
 
void commitData (Scalar **values)
 
void getData (const Scalar **values, Index *stride) const
 
void freeData (const Scalar **values) const
 

Overridden from VectorBase

Teuchos::RefCountPtr< const
VectorSpaceBase< Scalar > > 
space () const
 

Overridden from Teuchos::Describable

std::string description () const
 

Detailed Description

template<class Scalar>
class Thyra::SerialVectorStd< Scalar >

General concrete VectorBase implementation of serial vectors.

This class can be used either as a view of a vector data or as a storage for vector data (with any underlying storage type).

To create with storage with the dimension of dim just call the constructor SerialVectorStd(dim) or after construction you can call this->initialize(dim).

To simply create a view of a vector v with stride vs, without ownership just call SerialVectorStd(Teuchos::rcp(v,false),vs) or after construction call this->initialize(Teuchos::rcp(v,false),vs).

To use another storage type, such as an std::vector<Scalar>, construct as:

 template<class Scalar>
 Teuchos::RefCountPtr<VectorBase<Scalar> > STLVectorSpace<Scalar>::createMember() const
 {
   Teuchos::RefCountPtr<std::vector<Scalar> > stl_v = Teuchos::rcp( new std::vector<Scalar>(dim_) );
   Teuchos::RefCountPtr<Scalar> v = Teuchos::rcp(&(*stl_v)[0],false);
   Teuchos::set_extra_data( stl_v, "stl::vector", &v );
   return Teuchos::rcp( new SerialVectorStd<Scalar>( v, 1, dim_, Teuchos::rcp(this,false) ) );
 }

Definition at line 70 of file Thyra_SerialVectorStdDecl.hpp.


Constructor & Destructor Documentation

template<class Scalar>
Thyra::SerialVectorStd< Scalar >::SerialVectorStd const Teuchos::RefCountPtr< const VectorSpaceBase< Scalar > > &  vecSpc  ) 
 

Calls this->initialize(vecSpc).

Definition at line 41 of file Thyra_SerialVectorStd.hpp.

template<class Scalar>
Thyra::SerialVectorStd< Scalar >::SerialVectorStd const Index  dim = 0  ) 
 

Calls this->initialize(dim).

Definition at line 49 of file Thyra_SerialVectorStd.hpp.

template<class Scalar>
Thyra::SerialVectorStd< Scalar >::SerialVectorStd const Teuchos::RefCountPtr< Scalar > &  v,
const Index  vs,
const Index  dim,
const Teuchos::RefCountPtr< const VectorSpaceBase< Scalar > > &  vecSpc = Teuchos::null
 

Calls this->initialize(v,vs,dim,vecSpc).

Definition at line 57 of file Thyra_SerialVectorStd.hpp.


Member Function Documentation

template<class Scalar>
void Thyra::SerialVectorStd< Scalar >::initialize const Teuchos::RefCountPtr< const VectorSpaceBase< Scalar > > &  vecSpc  ) 
 

Call this->initialize(v,vs,vecSpc) with internally dynamically allocated data v.

Definition at line 68 of file Thyra_SerialVectorStd.hpp.

template<class Scalar>
void Thyra::SerialVectorStd< Scalar >::initialize const Index  dim  ) 
 

Call this->initialize(v,vs,true) with internally dynamically allocated data v.

Definition at line 82 of file Thyra_SerialVectorStd.hpp.

template<class Scalar>
void Thyra::SerialVectorStd< Scalar >::initialize const Teuchos::RefCountPtr< Scalar > &  v,
const Index  vs,
const Index  dim,
const Teuchos::RefCountPtr< const VectorSpaceBase< Scalar > > &  vecSpc = Teuchos::null
[virtual]
 

Initialize with storage.

Parameters:
v [in] Smart pointer to array of storage that *this will represent.
vs [in] Stride for the storage in v[] (see Postconditions).
dim [in] Number of elements in v[] this this will represent (see Postconditions).
vecSpc [in] Smart pointer to a VectorSpaceBase object that will be used to represent the vector space for *this. If vecSpc.get()==NULL on input, then a SerialVectorSpace object of dimension dim is allocated for this role. The default is Teuchos::null.
Preconditions:
  • [vecSpc.get()!=NULL] dim == vecSpc->dim() (throw std::invalid_argument)
  • [vecSpc.get()!=NULL] vecSpc->createMember() must create vectors that are compatible with *this (i.e. getSubVector(), commitSubVector() behave the same as with this class).

Postconditions:

  • [vecSpc.get()!=NULL] vecSpc.get() == this->space().get()
  • [vecSpc.get()==NULL] dynamic_cast<const SerialVectorSpaceStd<Scalar>*>(this->space().get()) != NULL
  • this->space()->dim() == dim
  • this->getRCPtr().get() == v.get()
  • this->getPtr() == v.get()
  • this->getStride() == vs

Note that this function is declared virtual so that subclasses can override it to be informed whenever *this vector is resized. An override should call this function as this->SerialVectorStd<Scalar>::initialize(...).

Definition at line 94 of file Thyra_SerialVectorStd.hpp.

template<class Scalar>
Teuchos::RefCountPtr< Scalar > Thyra::SerialVectorStd< Scalar >::getRCPtr  )  [inline]
 

Return non-const smart pointer to underlying data.

Definition at line 216 of file Thyra_SerialVectorStdDecl.hpp.

template<class Scalar>
Teuchos::RefCountPtr< const Scalar > Thyra::SerialVectorStd< Scalar >::getRCPtr  )  const [inline]
 

Return const smart pointer to underlying data.

Definition at line 223 of file Thyra_SerialVectorStdDecl.hpp.

template<class Scalar>
Scalar * Thyra::SerialVectorStd< Scalar >::getPtr  )  [inline]
 

Return non-const raw pointer to underlying data.

Definition at line 230 of file Thyra_SerialVectorStdDecl.hpp.

template<class Scalar>
const Scalar * Thyra::SerialVectorStd< Scalar >::getPtr  )  const [inline]
 

Return const raw pointer to underlying data.

Definition at line 237 of file Thyra_SerialVectorStdDecl.hpp.

template<class Scalar>
Index Thyra::SerialVectorStd< Scalar >::getStride  )  const [inline]
 

Return the stride between entries returned from getPtr().

Definition at line 244 of file Thyra_SerialVectorStdDecl.hpp.

template<class Scalar>
Index Thyra::SerialVectorStd< Scalar >::getDim  )  const [inline]
 

Inline call to return dimension.

Definition at line 251 of file Thyra_SerialVectorStdDecl.hpp.

template<class Scalar>
void Thyra::SerialVectorStd< Scalar >::getData Scalar **  values,
Index stride
[virtual]
 

Implements Thyra::SerialVectorBase< Scalar >.

Definition at line 118 of file Thyra_SerialVectorStd.hpp.

template<class Scalar>
void Thyra::SerialVectorStd< Scalar >::commitData Scalar **  values  )  [virtual]
 

Implements Thyra::SerialVectorBase< Scalar >.

Definition at line 128 of file Thyra_SerialVectorStd.hpp.

template<class Scalar>
void Thyra::SerialVectorStd< Scalar >::getData const Scalar **  values,
Index stride
const [virtual]
 

Reimplemented from Thyra::SerialVectorBase< Scalar >.

Definition at line 138 of file Thyra_SerialVectorStd.hpp.

template<class Scalar>
void Thyra::SerialVectorStd< Scalar >::freeData const Scalar **  values  )  const [virtual]
 

Reimplemented from Thyra::SerialVectorBase< Scalar >.

Definition at line 148 of file Thyra_SerialVectorStd.hpp.

template<class Scalar>
Teuchos::RefCountPtr< const VectorSpaceBase< Scalar > > Thyra::SerialVectorStd< Scalar >::space  )  const
 

Definition at line 161 of file Thyra_SerialVectorStd.hpp.

template<class Scalar>
std::string Thyra::SerialVectorStd< Scalar >::description  )  const
 

Definition at line 169 of file Thyra_SerialVectorStd.hpp.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:39:54 2008 for Thyra ANA Operator/VectorBase Interfaces and Related Software by doxygen 1.3.9.1