Thyra::MPIMultiVectorStd< Scalar > Class Template Reference
[Efficient Generic MPI-based SPMD Concrete Thyra Operator/Vector Subclass Implementations]

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

#include <Thyra_MPIMultiVectorStdDecl.hpp>

Inheritance diagram for Thyra::MPIMultiVectorStd< Scalar >:

[legend]
List of all members.

Constructors/initializers/accessors

 MPIMultiVectorStd ()
 Construct to uninitialized.
 MPIMultiVectorStd (const Teuchos::RefCountPtr< const MPIVectorSpaceBase< Scalar > > &mpiRangeSpace, const Teuchos::RefCountPtr< const ScalarProdVectorSpaceBase< Scalar > > &domainSpace, const Teuchos::RefCountPtr< Scalar > &localValues, const Index leadingDim)
 Calls initialize().
void initialize (const Teuchos::RefCountPtr< const MPIVectorSpaceBase< Scalar > > &mpiRangeSpace, const Teuchos::RefCountPtr< const ScalarProdVectorSpaceBase< Scalar > > &domainSpace, const Teuchos::RefCountPtr< Scalar > &localValues, const Index leadingDim)
 Initialize.
void uninitialize (Teuchos::RefCountPtr< const MPIVectorSpaceBase< Scalar > > *mpiRangeSpace=NULL, Teuchos::RefCountPtr< const ScalarProdVectorSpaceBase< Scalar > > *domainSpace=NULL, Teuchos::RefCountPtr< Scalar > *localValues=NULL, Index *leadingDim=NULL)
 Set to an uninitialized state.

Overridden form Teuchos::Describable

std::string description () const
 

Overridden from EuclideanLinearOpBase

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

Overridden from MultiVectorBase

Teuchos::RefCountPtr< VectorBase<
Scalar > > 
col (Index j)
 
Teuchos::RefCountPtr< MultiVectorBase<
Scalar > > 
subView (const Range1D &col_rng)
 

Overridden from MPIMultiVectorBase

Teuchos::RefCountPtr< const
MPIVectorSpaceBase< Scalar > > 
mpiSpace () 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::MPIMultiVectorStd< Scalar >

Efficient concrete implementation subclass for SPMD-MPI-based 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::MPIVectorSpaceStd and using the function Thyra::MPIVectorSpaceStd::createMembers().

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

Definition at line 53 of file Thyra_MPIMultiVectorStdDecl.hpp.


Constructor & Destructor Documentation

template<class Scalar>
Thyra::MPIMultiVectorStd< Scalar >::MPIMultiVectorStd  ) 
 

Construct to uninitialized.

Definition at line 44 of file Thyra_MPIMultiVectorStd.hpp.

template<class Scalar>
Thyra::MPIMultiVectorStd< Scalar >::MPIMultiVectorStd const Teuchos::RefCountPtr< const MPIVectorSpaceBase< Scalar > > &  mpiRangeSpace,
const Teuchos::RefCountPtr< const ScalarProdVectorSpaceBase< Scalar > > &  domainSpace,
const Teuchos::RefCountPtr< Scalar > &  localValues,
const Index  leadingDim
 

Calls initialize().

Definition at line 49 of file Thyra_MPIMultiVectorStd.hpp.


Member Function Documentation

template<class Scalar>
void Thyra::MPIMultiVectorStd< Scalar >::initialize const Teuchos::RefCountPtr< const MPIVectorSpaceBase< Scalar > > &  mpiRangeSpace,
const Teuchos::RefCountPtr< const ScalarProdVectorSpaceBase< Scalar > > &  domainSpace,
const Teuchos::RefCountPtr< Scalar > &  localValues,
const Index  leadingDim
 

Initialize.

Parameters:
mpiRangeSpace [in] Smart pointer to MPIVectorSpaceBase object that defines the data distribution for mpiSpace() 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 mpiRangeSpace->localSubDim()*domainSpace->dim() and (&*localValues)[ (i-1) + (j-1)*leadingDim ] gives the local value of the one-based entry (i,j) where i=1...mpiSpace()->localSubDim() and j=1...domainSpace->dim().
leadingDim [in] The leading dimension of the multi-vector.
Preconditions:
  • mpiRangeSpace.get()!=NULL
  • domainSpace.get()!=NULL
  • localValues.get()!=NULL
  • leadingDim >= mpiRangeSpace->localSubDim()

Definition at line 60 of file Thyra_MPIMultiVectorStd.hpp.

template<class Scalar>
void Thyra::MPIMultiVectorStd< Scalar >::uninitialize Teuchos::RefCountPtr< const MPIVectorSpaceBase< Scalar > > *  mpiRangeSpace = NULL,
Teuchos::RefCountPtr< const ScalarProdVectorSpaceBase< Scalar > > *  domainSpace = NULL,
Teuchos::RefCountPtr< Scalar > *  localValues = NULL,
Index leadingDim = NULL
 

Set to an uninitialized state.

Postconditions:

Definition at line 81 of file Thyra_MPIMultiVectorStd.hpp.

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

Definition at line 104 of file Thyra_MPIMultiVectorStd.hpp.

template<class Scalar>
Teuchos::RefCountPtr< const ScalarProdVectorSpaceBase< Scalar > > Thyra::MPIMultiVectorStd< Scalar >::domainScalarProdVecSpc  )  const [virtual]
 

Implements Thyra::EuclideanLinearOpBase< Scalar >.

Definition at line 113 of file Thyra_MPIMultiVectorStd.hpp.

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

Definition at line 125 of file Thyra_MPIMultiVectorStd.hpp.

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

Reimplemented from Thyra::MultiVectorDefaultBase< Scalar >.

Definition at line 145 of file Thyra_MPIMultiVectorStd.hpp.

template<class Scalar>
Teuchos::RefCountPtr< const MPIVectorSpaceBase< Scalar > > Thyra::MPIMultiVectorStd< Scalar >::mpiSpace  )  const [virtual]
 

Implements Thyra::MPIMultiVectorBase< Scalar >.

Definition at line 167 of file Thyra_MPIMultiVectorStd.hpp.

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

Implements Thyra::MPIMultiVectorBase< Scalar >.

Definition at line 176 of file Thyra_MPIMultiVectorStd.hpp.

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

Implements Thyra::MPIMultiVectorBase< Scalar >.

Definition at line 190 of file Thyra_MPIMultiVectorStd.hpp.

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

Implements Thyra::MPIMultiVectorBase< Scalar >.

Definition at line 202 of file Thyra_MPIMultiVectorStd.hpp.

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

Implements Thyra::MPIMultiVectorBase< Scalar >.

Definition at line 216 of file Thyra_MPIMultiVectorStd.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