Thyra Version of the Day
Thyra::DefaultSpmdVector< Scalar > Class Template Reference

Efficient concrete implementation subclass for SPMD vectors. More...

#include <Thyra_DefaultSpmdVector_decl.hpp>

Inheritance diagram for Thyra::DefaultSpmdVector< Scalar >:
Inheritance graph
[legend]

List of all members.

Constructors/initializers

 DefaultSpmdVector ()
 Construct to uninitialized.
 DefaultSpmdVector (const RCP< const SpmdVectorSpaceBase< Scalar > > &spmdSpace, const ArrayRCP< Scalar > &localValues, const Ordinal stride)
 Calls initialize().
void initialize (const RCP< const SpmdVectorSpaceBase< Scalar > > &spmdSpace, const ArrayRCP< Scalar > &localValues, const Ordinal stride)
 Initialize.
void uninitialize (RCP< const SpmdVectorSpaceBase< Scalar > > *spmdSpace=NULL, ArrayRCP< Scalar > *localValues=NULL, Ordinal *stride=NULL)
 Set to an uninitialized state.

Accessors (inlined for minimal overhead)

ArrayRCP< Scalar > getRCPtr ()
 
ArrayRCP< const Scalar > getRCPtr () const
 
Scalar * getPtr ()
 
const Scalar * getPtr () const
 
Ordinal getStride () const
 

Overridden from SpmdVectorBase

RCP< const SpmdVectorSpaceBase
< Scalar > > 
spmdSpace () const
 
void getNonconstLocalDataImpl (const Ptr< ArrayRCP< Scalar > > &localValues)
 
void getLocalDataImpl (const Ptr< ArrayRCP< const Scalar > > &localValues) const
 

Detailed Description

template<class Scalar>
class Thyra::DefaultSpmdVector< Scalar >

Efficient concrete implementation subclass for SPMD vectors.

This subclass provides a very efficient and very general concrete implementation of a Thyra::VectorBase object for any SPMD platform.

Objects of this type generally should not be constructed directly by a client but instead by using the concrete vector space subclass Thyra::DefaultSpmdVectorSpace and using the function Thyra::createMember().

The storage type can be anything since an ArrayRCP is used to pass in the local values pointer into the constructor and initialize().

Definition at line 69 of file Thyra_DefaultSpmdVector_decl.hpp.


Constructor & Destructor Documentation

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

Construct to uninitialized.

Definition at line 58 of file Thyra_DefaultSpmdVector_def.hpp.

template<class Scalar >
Thyra::DefaultSpmdVector< Scalar >::DefaultSpmdVector ( const RCP< const SpmdVectorSpaceBase< Scalar > > &  spmdSpace,
const ArrayRCP< Scalar > &  localValues,
const Ordinal  stride 
)

Calls initialize().

Definition at line 64 of file Thyra_DefaultSpmdVector_def.hpp.


Member Function Documentation

template<class Scalar >
void Thyra::DefaultSpmdVector< Scalar >::initialize ( const RCP< const SpmdVectorSpaceBase< Scalar > > &  spmdSpace,
const ArrayRCP< Scalar > &  localValues,
const Ordinal  stride 
)

Initialize.

Parameters:
spmdSpace[in] Smart pointer to SpmdVectorSpaceBase object that defines the data distribution for spmdSpace() and space().
localValues[in] Smart pointer to beginning of local strided vector data. This array must be at least of dimension mpiRangeSpace->localDim()*stride and (&*localValues)[ i*stride ] gives the local value of the zero-based entry (i) where i=0...spmdSpace()->localSubDim()-1.
stride[in] Stride between local vector elements.

Preconditions:

  • spmdSpace.get()!=NULL
  • localValues.get()!=NULL
  • stride != 0

Postconditions:

  • this->getRCptr().get() == localValues.get()
  • this->getPtr() == &*localValues
  • this->getStride() == stride

Definition at line 75 of file Thyra_DefaultSpmdVector_def.hpp.

template<class Scalar >
void Thyra::DefaultSpmdVector< Scalar >::uninitialize ( RCP< const SpmdVectorSpaceBase< Scalar > > *  spmdSpace = NULL,
ArrayRCP< Scalar > *  localValues = NULL,
Ordinal stride = NULL 
)

Set to an uninitialized state.

Postconditions:

Definition at line 94 of file Thyra_DefaultSpmdVector_def.hpp.

template<class Scalar >
ArrayRCP< Scalar > Thyra::DefaultSpmdVector< Scalar >::getRCPtr ( ) [inline]

Definition at line 177 of file Thyra_DefaultSpmdVector_decl.hpp.

template<class Scalar >
ArrayRCP< const Scalar > Thyra::DefaultSpmdVector< Scalar >::getRCPtr ( ) const [inline]

Definition at line 186 of file Thyra_DefaultSpmdVector_decl.hpp.

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

Definition at line 194 of file Thyra_DefaultSpmdVector_decl.hpp.

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

Definition at line 202 of file Thyra_DefaultSpmdVector_decl.hpp.

template<class Scalar >
Ordinal Thyra::DefaultSpmdVector< Scalar >::getStride ( ) const [inline]

Definition at line 210 of file Thyra_DefaultSpmdVector_decl.hpp.

template<class Scalar >
RCP< const SpmdVectorSpaceBase< Scalar > > Thyra::DefaultSpmdVector< Scalar >::spmdSpace ( ) const [virtual]

Implements Thyra::SpmdVectorBase< Scalar >.

Definition at line 117 of file Thyra_DefaultSpmdVector_def.hpp.

template<class Scalar >
void Thyra::DefaultSpmdVector< Scalar >::getNonconstLocalDataImpl ( const Ptr< ArrayRCP< Scalar > > &  localValues) [virtual]

Implements Thyra::SpmdVectorBase< Scalar >.

Definition at line 124 of file Thyra_DefaultSpmdVector_def.hpp.

template<class Scalar >
void Thyra::DefaultSpmdVector< Scalar >::getLocalDataImpl ( const Ptr< ArrayRCP< const Scalar > > &  localValues) const [virtual]

Implements Thyra::SpmdVectorBase< Scalar >.

Definition at line 132 of file Thyra_DefaultSpmdVector_def.hpp.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines