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

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

#include <Thyra_DefaultSpmdMultiVectorDecl.hpp>

Inheritance diagram for Thyra::DefaultSpmdMultiVector< Scalar >:

[legend]
List of all members.

Constructors/initializers/accessors

 DefaultSpmdMultiVector ()
 Construct to uninitialized.
 DefaultSpmdMultiVector (const Teuchos::RCP< const SpmdVectorSpaceBase< Scalar > > &spmdRangeSpace, const Teuchos::RCP< const ScalarProdVectorSpaceBase< Scalar > > &domainSpace)
 Calls initialize().
 DefaultSpmdMultiVector (const Teuchos::RCP< const SpmdVectorSpaceBase< Scalar > > &spmdRangeSpace, const Teuchos::RCP< const ScalarProdVectorSpaceBase< Scalar > > &domainSpace, const Teuchos::RCP< Scalar > &localValues, const Index leadingDim)
 Calls initialize().
void initialize (const Teuchos::RCP< const SpmdVectorSpaceBase< Scalar > > &spmdRangeSpace, const Teuchos::RCP< const ScalarProdVectorSpaceBase< Scalar > > &domainSpace)
 Initialize only with vector spaces where storage is allocated internally..
void initialize (const Teuchos::RCP< const SpmdVectorSpaceBase< Scalar > > &spmdRangeSpace, const Teuchos::RCP< const ScalarProdVectorSpaceBase< Scalar > > &domainSpace, const Teuchos::RCP< Scalar > &localValues, const Index leadingDim)
 Initialize using externally allocated storage.
void uninitialize (Teuchos::RCP< const SpmdVectorSpaceBase< Scalar > > *spmdRangeSpace=NULL, Teuchos::RCP< const ScalarProdVectorSpaceBase< Scalar > > *domainSpace=NULL, Teuchos::RCP< Scalar > *localValues=NULL, Index *leadingDim=NULL)
 Set to an uninitialized state.

Overridden from EuclideanLinearOpBase

Teuchos::RCP< const ScalarProdVectorSpaceBase<
Scalar > > 
domainScalarProdVecSpc () const
 

Overridden from MultiVectorBase

Teuchos::RCP< VectorBase<
Scalar > > 
col (Index j)
 
Teuchos::RCP< MultiVectorBase<
Scalar > > 
subView (const Range1D &col_rng)
 
Teuchos::RCP< const MultiVectorBase<
Scalar > > 
subView (const int numCols, const int cols[]) const
 
Teuchos::RCP< MultiVectorBase<
Scalar > > 
subView (const int numCols, const int cols[])
 

Overridden from SpmdMultiVectorBase

Teuchos::RCP< const SpmdVectorSpaceBase<
Scalar > > 
spmdSpace () const
 
void getLocalData (Scalar **localValues, Index *leadingDim)
 
void commitLocalData (Scalar *localValues)
 
void getLocalData (const Scalar **localValues, Index *leadingDim) const
 
void freeLocalData (const Scalar *localValues) const
 

Detailed Description

template<class Scalar>
class Thyra::DefaultSpmdMultiVector< Scalar >

Efficient concrete implementation subclass for SPMD multi-vectors.

This subclass provides a very efficient and very general concrete implementation of a Thyra::MultiVectorBase object.

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::createMembers().

The storage type can be anything since a Teuchos::RCP is used to pass in the local values pointer into the constructor and initialize().

Examples:

test_scalar_product.cpp.

Definition at line 55 of file Thyra_DefaultSpmdMultiVectorDecl.hpp.


Constructor & Destructor Documentation

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

Construct to uninitialized.

Definition at line 93 of file Thyra_DefaultSpmdMultiVector.hpp.

template<class Scalar>
Thyra::DefaultSpmdMultiVector< Scalar >::DefaultSpmdMultiVector ( const Teuchos::RCP< const SpmdVectorSpaceBase< Scalar > > &  spmdRangeSpace,
const Teuchos::RCP< const ScalarProdVectorSpaceBase< Scalar > > &  domainSpace 
)

Calls initialize().

Definition at line 98 of file Thyra_DefaultSpmdMultiVector.hpp.

template<class Scalar>
Thyra::DefaultSpmdMultiVector< Scalar >::DefaultSpmdMultiVector ( const Teuchos::RCP< const SpmdVectorSpaceBase< Scalar > > &  spmdRangeSpace,
const Teuchos::RCP< const ScalarProdVectorSpaceBase< Scalar > > &  domainSpace,
const Teuchos::RCP< Scalar > &  localValues,
const Index  leadingDim 
)

Calls initialize().

Definition at line 107 of file Thyra_DefaultSpmdMultiVector.hpp.


Member Function Documentation

template<class Scalar>
void Thyra::DefaultSpmdMultiVector< Scalar >::initialize ( const Teuchos::RCP< const SpmdVectorSpaceBase< Scalar > > &  spmdRangeSpace,
const Teuchos::RCP< const ScalarProdVectorSpaceBase< Scalar > > &  domainSpace 
)

Initialize only with vector spaces where storage is allocated internally..

Parameters:
spmdRangeSpace [in] Smart pointer to SpmdVectorSpaceBase object that defines the data distribution for spmdSpace() and range().
domainSpace [in] Smart pointer to VectorSpaceBase object that defines domain() space.
Preconditions:

Definition at line 118 of file Thyra_DefaultSpmdMultiVector.hpp.

template<class Scalar>
void Thyra::DefaultSpmdMultiVector< Scalar >::initialize ( const Teuchos::RCP< const SpmdVectorSpaceBase< Scalar > > &  spmdRangeSpace,
const Teuchos::RCP< const ScalarProdVectorSpaceBase< Scalar > > &  domainSpace,
const Teuchos::RCP< Scalar > &  localValues,
const Index  leadingDim 
)

Initialize using externally allocated storage.

Parameters:
spmdRangeSpace [in] Smart pointer to SpmdVectorSpaceBase object that defines the data distribution for spmdSpace() and range().
domainSpace [in] Smart pointer to VectorSpaceBase object that defines domain() space.
localValues [in] Smart pointer to beginning of Fortran-style column-major array that defines the local localValues in the multi-vector. This array must be at least of dimension spmdRangeSpace->localSubDim()*domainSpace->dim() and (&*localValues)[ i + j*leadingDim ] gives the local value of the zero-based entry (i,j) where i=0...spmdSpace()->localSubDim()-1 and j=0...domainSpace->dim()-1.
leadingDim [in] The leading dimension of the multi-vector.
Preconditions:

Definition at line 137 of file Thyra_DefaultSpmdMultiVector.hpp.

template<class Scalar>
void Thyra::DefaultSpmdMultiVector< Scalar >::uninitialize ( Teuchos::RCP< const SpmdVectorSpaceBase< Scalar > > *  spmdRangeSpace = NULL,
Teuchos::RCP< const ScalarProdVectorSpaceBase< Scalar > > *  domainSpace = NULL,
Teuchos::RCP< Scalar > *  localValues = NULL,
Index leadingDim = NULL 
)

Set to an uninitialized state.

Postconditions:

Definition at line 158 of file Thyra_DefaultSpmdMultiVector.hpp.

template<class Scalar>
Teuchos::RCP< const ScalarProdVectorSpaceBase< Scalar > > Thyra::DefaultSpmdMultiVector< Scalar >::domainScalarProdVecSpc (  )  const [virtual]

Implements Thyra::EuclideanLinearOpBase< Scalar >.

Definition at line 182 of file Thyra_DefaultSpmdMultiVector.hpp.

template<class Scalar>
Teuchos::RCP< VectorBase< Scalar > > Thyra::DefaultSpmdMultiVector< Scalar >::col ( Index  j  )  [virtual]

Implements Thyra::MultiVectorBase< Scalar >.

Definition at line 194 of file Thyra_DefaultSpmdMultiVector.hpp.

template<class Scalar>
Teuchos::RCP< MultiVectorBase< Scalar > > Thyra::DefaultSpmdMultiVector< Scalar >::subView ( const Range1D col_rng  )  [virtual]

Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.

Definition at line 214 of file Thyra_DefaultSpmdMultiVector.hpp.

template<class Scalar>
Teuchos::RCP< const MultiVectorBase< Scalar > > Thyra::DefaultSpmdMultiVector< Scalar >::subView ( const int  numCols,
const int  cols[] 
) const [virtual]

Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.

Definition at line 235 of file Thyra_DefaultSpmdMultiVector.hpp.

template<class Scalar>
Teuchos::RCP< MultiVectorBase< Scalar > > Thyra::DefaultSpmdMultiVector< Scalar >::subView ( const int  numCols,
const int  cols[] 
) [virtual]

Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.

Definition at line 253 of file Thyra_DefaultSpmdMultiVector.hpp.

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

Implements Thyra::SpmdMultiVectorBase< Scalar >.

Definition at line 283 of file Thyra_DefaultSpmdMultiVector.hpp.

template<class Scalar>
void Thyra::DefaultSpmdMultiVector< Scalar >::getLocalData ( Scalar **  localValues,
Index leadingDim 
) [virtual]

Implements Thyra::SpmdMultiVectorBase< Scalar >.

Definition at line 292 of file Thyra_DefaultSpmdMultiVector.hpp.

template<class Scalar>
void Thyra::DefaultSpmdMultiVector< Scalar >::commitLocalData ( Scalar *  localValues  )  [virtual]

Implements Thyra::SpmdMultiVectorBase< Scalar >.

Definition at line 308 of file Thyra_DefaultSpmdMultiVector.hpp.

template<class Scalar>
void Thyra::DefaultSpmdMultiVector< Scalar >::getLocalData ( const Scalar **  localValues,
Index leadingDim 
) const [virtual]

Implements Thyra::SpmdMultiVectorBase< Scalar >.

Definition at line 320 of file Thyra_DefaultSpmdMultiVector.hpp.

template<class Scalar>
void Thyra::DefaultSpmdMultiVector< Scalar >::freeLocalData ( const Scalar *  localValues  )  const [virtual]

Implements Thyra::SpmdMultiVectorBase< Scalar >.

Definition at line 336 of file Thyra_DefaultSpmdMultiVector.hpp.


The documentation for this class was generated from the following files:
Generated on Tue Oct 20 12:47:01 2009 for Thyra Operator/Vector Support by doxygen 1.4.7