Tpetra::MultiVector< Ordinal, Scalar > Class Template Reference

#include <Tpetra_MultiVectorDecl.hpp>

Inheritance diagram for Tpetra::MultiVector< Ordinal, Scalar >:

Tpetra::DistObject< Ordinal, Scalar > Teuchos::Object List of all members.

Public Member Functions

Constructor/Destructor Methods
 MultiVector (const Map< Ordinal > &map, Ordinal numVectors, bool zeroOut=true)
 Basic MultiVector constuctor.
 MultiVector (const MultiVector< Ordinal, Scalar > &source)
 MultiVector copy constructor.
 MultiVector (const Map< Ordinal > &map, const Teuchos::ArrayView< const Scalar > &A, Ordinal LDA, Ordinal numVectors)
 Set multi-vector values from two-dimensional array. (copy).
 MultiVector (const Map< Ordinal > &map, const Teuchos::ArrayView< const Teuchos::ArrayView< const Scalar > > &arrayOfArrays)
 Set multi-vector values from array of pointers. (copy).
virtual ~MultiVector ()
 MultiVector destructor.
Post-construction modification routines
void replaceGlobalValue (Ordinal globalRow, Ordinal vectorIndex, const Scalar &value)
 Replace current value at the specified (GlobalRow, VectorIndex) location with ScalarValue.
void sumIntoGlobalValue (Ordinal globalRow, Ordinal vectorIndex, const Scalar &value)
 Adds ScalarValue to existing value at the specified (GlobalRow, VectorIndex) location.
void replaceMyValue (Ordinal MyRow, Ordinal VectorIndex, const Scalar &ScalarValue)
 Replace current value at the specified (MyRow, VectorIndex) location with ScalarValue.
void sumIntoMyValue (Ordinal MyRow, Ordinal VectorIndex, const Scalar &ScalarValue)
 Adds ScalarValue to existing value at the specified (MyRow, VectorIndex) location.
void putScalar (const Scalar &ScalarConstant)
 Initialize all values in a multi-vector with constant value.
void random ()
 Set multi-vector values to random numbers.
void replaceMap (const Map< Ordinal > &map)
 Replace the underlying Map with a compatible one.
void reduce ()
 Instruct a local (non-distributed) MultiVector to sum values across all nodes.
Extraction methods
Teuchos::RCP< MultiVector<
Ordinal, Scalar > > 
subCopy (const Teuchos::ArrayView< const Teuchos_Index > &cols) const
 Returns a MultiVector with copies of selected columns.
Teuchos::RCP< MultiVector<
Ordinal, Scalar > > 
subView (const Teuchos::ArrayView< const Teuchos_Index > &cols)
 Returns a MultiVector with views of selected columns.
Teuchos::RCP< const MultiVector<
Ordinal, Scalar > > 
subViewConst (const Teuchos::ArrayView< const Teuchos_Index > &cols) const
 Returns a const MultiVector with const views of selected columns.
void extractCopy (Teuchos::ArrayView< Scalar > A, Ordinal &MyLDA) const
 Return multi-vector values in user-provided two-dimensional array.
void extractCopy (Teuchos::ArrayView< const Teuchos::ArrayView< Scalar > > arrayOfArrays) const
 Return multi-vector values in user-provided array of pointers.
void extractView (Teuchos::ArrayView< Scalar > &A, Ordinal &MyLDA)
 Return non-const non-persisting view of values in a one-dimensional array. Throws std::runtime_error if the underlying data is non-contiguous.
Teuchos::ArrayView< const
Teuchos::ArrayView< Scalar > > 
extractView ()
 Return non-const non-persisting pointers to values. This is a non-persisting view.
void extractConstView (Teuchos::ArrayView< const Scalar > &A, Ordinal &MyLDA) const
 Return const non-persisting view of values in a one-dimensional array. Throws std::runtime_error if the underlying data is non-contiguous.
Teuchos::ArrayView< const
Teuchos::ArrayView< const
Scalar > > 
extractConstView () const
 Return const non-persisting pointers to values. This is a non-persisting view.
Mathematical methods
void dot (const MultiVector< Ordinal, Scalar > &A, const Teuchos::ArrayView< Scalar > &dots) const
 Computes dot product of each corresponding pair of vectors, dots[i] = this[i].dot(A[i]).
void abs (const MultiVector< Ordinal, Scalar > &A)
 Puts element-wise absolute values of input Multi-vector in target, this = abs(A).
void reciprocal (const MultiVector< Ordinal, Scalar > &A)
 Puts element-wise reciprocal values of input Multi-vector in target, this(i,j) = 1/A(i,j).
void scale (const Scalar &alpha)
 Scale the current values of a multi-vector, this = alpha*this.
void scale (Teuchos::ArrayView< const Scalar > alpha)
 Scale the current values of a multi-vector, this = alpha*this.
void scale (const Scalar &alpha, const MultiVector< Ordinal, Scalar > &A)
 Replace multi-vector values with scaled values of A, this = alpha*A.
void update (const Scalar &alpha, const MultiVector< Ordinal, Scalar > &A, const Scalar &beta)
 Update multi-vector values with scaled values of A, this = beta*this + alpha*A.
void update (const Scalar &alpha, const MultiVector< Ordinal, Scalar > &A, const Scalar &beta, const MultiVector< Ordinal, Scalar > &B, const Scalar &gamma)
 Update multi-vector with scaled values of A and B, this = gamma*this + alpha*A + beta*B.
void norm1 (const Teuchos::ArrayView< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &norms) const
 Compute 1-norm of each vector in multi-vector.
void norm2 (const Teuchos::ArrayView< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &norms) const
 Compute 2-norm of each vector in multi-vector.
void normInf (const Teuchos::ArrayView< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &norms) const
 Compute Inf-norm of each vector in multi-vector.
void normWeighted (const MultiVector< Ordinal, Scalar > &weights, const Teuchos::ArrayView< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &norms) const
 Compute Weighted 2-norm (RMS Norm) of each vector in multi-vector.
void minValue (const Teuchos::ArrayView< Scalar > &mins) const
 Compute minimum value of each vector in multi-vector.
void maxValue (const Teuchos::ArrayView< Scalar > &maxs) const
 Compute maximum value of each vector in multi-vector.
void meanValue (const Teuchos::ArrayView< Scalar > &means) const
 Compute mean (average) value of each vector in multi-vector.
void multiply (Teuchos::ETransp transA, Teuchos::ETransp transB, const Scalar &alpha, const MultiVector< Ordinal, Scalar > &A, const MultiVector< Ordinal, Scalar > &B, const Scalar &beta)
 Matrix-Matrix multiplication, this = beta*this + alpha*op(A)*op(B).
void multiply (const Scalar &alpha, const MultiVector< Ordinal, Scalar > &A, const MultiVector< Ordinal, Scalar > &B, const Scalar &beta)
 Multiply a MultiVector with another, element-by-element: this(i,j) = beta*this(i,j) + alpha*A(i,j)*B(i,j).
void reciprocalMultiply (const Scalar &alpha, const MultiVector< Ordinal, Scalar > &A, const MultiVector< Ordinal, Scalar > &B, const Scalar &beta)
 Multiply a MultiVector by the reciprocal of another, element-by-element. this(i,j) = beta*this(i,j) + alpha*B(i,j)/A(i,j).
Overloaded operators
MultiVector< Ordinal, Scalar > & operator= (const MultiVector< Ordinal, Scalar > &source)
 = Operator.
Teuchos::ArrayView< Scalar > operator[] (Ordinal i)
 Local vector access function.
Teuchos::ArrayView< const
Scalar > 
operator[] (Ordinal i) const
 Local vector access function.
Attribute access functions
Ordinal numVectors () const
 Returns the number of vectors in the multi-vector.
Ordinal myLength () const
 Returns the local vector length on the calling processor of vectors in the multi-vector.
Ordinal globalLength () const
 Returns the global vector length of vectors in the multi-vector.
Ordinal stride () const
 Returns the stride between vectors in the multi-vector (only meaningful if ConstantStride() is true). WARNING: this may vary from node to node.
bool constantStride () const
 Returns true if this multi-vector has constant stride between vectors. WARNING: This may vary from node to node.
I/O methods
void print (std::ostream &os) const
 Print method.

Protected Member Functions

bool checkSizes (const DistObject< Ordinal, Scalar > &sourceObj, Ordinal &packetSize)
 Allows the source and target (this) objects to be compared for compatibility.
void copyAndPermute (const DistObject< Ordinal, Scalar > &sourceObj, Ordinal numSameIDs, const Teuchos::ArrayView< const Ordinal > &permuteToLIDs, const Teuchos::ArrayView< const Ordinal > &permuteFromLIDs)
 Perform copies and permutations that are local to this image.
void packAndPrepare (const DistObject< Ordinal, Scalar > &sourceObj, const Teuchos::ArrayView< const Ordinal > &exportLIDs, const Teuchos::ArrayView< Scalar > &exports, Distributor< Ordinal > &distor)
 Perform any packing or preparation required for communication.
void unpackAndCombine (const Teuchos::ArrayView< const Ordinal > &importLIDs, const Teuchos::ArrayView< const Scalar > &imports, Distributor< Ordinal > &distor, CombineMode CM)
 Perform any unpacking and combining after communication.

Detailed Description

template<class Ordinal, class Scalar>
class Tpetra::MultiVector< Ordinal, Scalar >

multivector


Constructor & Destructor Documentation

template<typename Ordinal, typename Scalar>
Tpetra::MultiVector< Ordinal, Scalar >::MultiVector ( const Map< Ordinal > &  map,
Ordinal  numVectors,
bool  zeroOut = true 
)

Basic MultiVector constuctor.

template<typename Ordinal, typename Scalar>
Tpetra::MultiVector< Ordinal, Scalar >::MultiVector ( const MultiVector< Ordinal, Scalar > &  source  ) 

MultiVector copy constructor.

template<typename Ordinal, typename Scalar>
Tpetra::MultiVector< Ordinal, Scalar >::MultiVector ( const Map< Ordinal > &  map,
const Teuchos::ArrayView< const Scalar > &  A,
Ordinal  LDA,
Ordinal  numVectors 
)

Set multi-vector values from two-dimensional array. (copy).

template<typename Ordinal, typename Scalar>
Tpetra::MultiVector< Ordinal, Scalar >::MultiVector ( const Map< Ordinal > &  map,
const Teuchos::ArrayView< const Teuchos::ArrayView< const Scalar > > &  arrayOfArrays 
)

Set multi-vector values from array of pointers. (copy).

template<typename Ordinal, typename Scalar>
Tpetra::MultiVector< Ordinal, Scalar >::~MultiVector (  )  [virtual]

MultiVector destructor.


Member Function Documentation

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::replaceGlobalValue ( Ordinal  globalRow,
Ordinal  vectorIndex,
const Scalar &  value 
)

Replace current value at the specified (GlobalRow, VectorIndex) location with ScalarValue.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::sumIntoGlobalValue ( Ordinal  globalRow,
Ordinal  vectorIndex,
const Scalar &  value 
)

Adds ScalarValue to existing value at the specified (GlobalRow, VectorIndex) location.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::replaceMyValue ( Ordinal  MyRow,
Ordinal  VectorIndex,
const Scalar &  ScalarValue 
)

Replace current value at the specified (MyRow, VectorIndex) location with ScalarValue.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::sumIntoMyValue ( Ordinal  MyRow,
Ordinal  VectorIndex,
const Scalar &  ScalarValue 
)

Adds ScalarValue to existing value at the specified (MyRow, VectorIndex) location.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::putScalar ( const Scalar &  ScalarConstant  ) 

Initialize all values in a multi-vector with constant value.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::random (  ) 

Set multi-vector values to random numbers.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::replaceMap ( const Map< Ordinal > &  map  ) 

Replace the underlying Map with a compatible one.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::reduce (  ) 

Instruct a local (non-distributed) MultiVector to sum values across all nodes.

template<typename Ordinal, typename Scalar>
Teuchos::RCP< MultiVector< Ordinal, Scalar > > Tpetra::MultiVector< Ordinal, Scalar >::subCopy ( const Teuchos::ArrayView< const Teuchos_Index > &  cols  )  const

Returns a MultiVector with copies of selected columns.

template<typename Ordinal, typename Scalar>
Teuchos::RCP< MultiVector< Ordinal, Scalar > > Tpetra::MultiVector< Ordinal, Scalar >::subView ( const Teuchos::ArrayView< const Teuchos_Index > &  cols  ) 

Returns a MultiVector with views of selected columns.

template<typename Ordinal, typename Scalar>
Teuchos::RCP< const MultiVector< Ordinal, Scalar > > Tpetra::MultiVector< Ordinal, Scalar >::subViewConst ( const Teuchos::ArrayView< const Teuchos_Index > &  cols  )  const

Returns a const MultiVector with const views of selected columns.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::extractCopy ( Teuchos::ArrayView< Scalar >  A,
Ordinal &  MyLDA 
) const

Return multi-vector values in user-provided two-dimensional array.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::extractCopy ( Teuchos::ArrayView< const Teuchos::ArrayView< Scalar > >  arrayOfArrays  )  const

Return multi-vector values in user-provided array of pointers.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::extractView ( Teuchos::ArrayView< Scalar > &  A,
Ordinal &  MyLDA 
)

Return non-const non-persisting view of values in a one-dimensional array. Throws std::runtime_error if the underlying data is non-contiguous.

template<typename Ordinal, typename Scalar>
Teuchos::ArrayView< const Teuchos::ArrayView< Scalar > > Tpetra::MultiVector< Ordinal, Scalar >::extractView (  ) 

Return non-const non-persisting pointers to values. This is a non-persisting view.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::extractConstView ( Teuchos::ArrayView< const Scalar > &  A,
Ordinal &  MyLDA 
) const

Return const non-persisting view of values in a one-dimensional array. Throws std::runtime_error if the underlying data is non-contiguous.

template<typename Ordinal, typename Scalar>
Teuchos::ArrayView< const Teuchos::ArrayView< const Scalar > > Tpetra::MultiVector< Ordinal, Scalar >::extractConstView (  )  const

Return const non-persisting pointers to values. This is a non-persisting view.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::dot ( const MultiVector< Ordinal, Scalar > &  A,
const Teuchos::ArrayView< Scalar > &  dots 
) const

Computes dot product of each corresponding pair of vectors, dots[i] = this[i].dot(A[i]).

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::abs ( const MultiVector< Ordinal, Scalar > &  A  ) 

Puts element-wise absolute values of input Multi-vector in target, this = abs(A).

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::reciprocal ( const MultiVector< Ordinal, Scalar > &  A  ) 

Puts element-wise reciprocal values of input Multi-vector in target, this(i,j) = 1/A(i,j).

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::scale ( const Scalar &  alpha  ) 

Scale the current values of a multi-vector, this = alpha*this.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::scale ( Teuchos::ArrayView< const Scalar >  alpha  ) 

Scale the current values of a multi-vector, this = alpha*this.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::scale ( const Scalar &  alpha,
const MultiVector< Ordinal, Scalar > &  A 
)

Replace multi-vector values with scaled values of A, this = alpha*A.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::update ( const Scalar &  alpha,
const MultiVector< Ordinal, Scalar > &  A,
const Scalar &  beta 
)

Update multi-vector values with scaled values of A, this = beta*this + alpha*A.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::update ( const Scalar &  alpha,
const MultiVector< Ordinal, Scalar > &  A,
const Scalar &  beta,
const MultiVector< Ordinal, Scalar > &  B,
const Scalar &  gamma 
)

Update multi-vector with scaled values of A and B, this = gamma*this + alpha*A + beta*B.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::norm1 ( const Teuchos::ArrayView< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &  norms  )  const

Compute 1-norm of each vector in multi-vector.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::norm2 ( const Teuchos::ArrayView< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &  norms  )  const

Compute 2-norm of each vector in multi-vector.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::normInf ( const Teuchos::ArrayView< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &  norms  )  const

Compute Inf-norm of each vector in multi-vector.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::normWeighted ( const MultiVector< Ordinal, Scalar > &  weights,
const Teuchos::ArrayView< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &  norms 
) const

Compute Weighted 2-norm (RMS Norm) of each vector in multi-vector.

template<class Ordinal, class Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::minValue ( const Teuchos::ArrayView< Scalar > &  mins  )  const

Compute minimum value of each vector in multi-vector.

template<class Ordinal, class Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::maxValue ( const Teuchos::ArrayView< Scalar > &  maxs  )  const

Compute maximum value of each vector in multi-vector.

template<class Ordinal, class Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::meanValue ( const Teuchos::ArrayView< Scalar > &  means  )  const

Compute mean (average) value of each vector in multi-vector.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::multiply ( Teuchos::ETransp  transA,
Teuchos::ETransp  transB,
const Scalar &  alpha,
const MultiVector< Ordinal, Scalar > &  A,
const MultiVector< Ordinal, Scalar > &  B,
const Scalar &  beta 
)

Matrix-Matrix multiplication, this = beta*this + alpha*op(A)*op(B).

template<class Ordinal, class Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::multiply ( const Scalar &  alpha,
const MultiVector< Ordinal, Scalar > &  A,
const MultiVector< Ordinal, Scalar > &  B,
const Scalar &  beta 
)

Multiply a MultiVector with another, element-by-element: this(i,j) = beta*this(i,j) + alpha*A(i,j)*B(i,j).

template<class Ordinal, class Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::reciprocalMultiply ( const Scalar &  alpha,
const MultiVector< Ordinal, Scalar > &  A,
const MultiVector< Ordinal, Scalar > &  B,
const Scalar &  beta 
)

Multiply a MultiVector by the reciprocal of another, element-by-element. this(i,j) = beta*this(i,j) + alpha*B(i,j)/A(i,j).

template<typename Ordinal, typename Scalar>
MultiVector< Ordinal, Scalar > & Tpetra::MultiVector< Ordinal, Scalar >::operator= ( const MultiVector< Ordinal, Scalar > &  source  ) 

= Operator.

Parameters:
In A - Multivector to copy

template<typename Ordinal, typename Scalar>
Teuchos::ArrayView< Scalar > Tpetra::MultiVector< Ordinal, Scalar >::operator[] ( Ordinal  i  ) 

Local vector access function.

ArrayRCP to the local values in the ith vector of this multi-vector.

template<typename Ordinal, typename Scalar>
Teuchos::ArrayView< const Scalar > Tpetra::MultiVector< Ordinal, Scalar >::operator[] ( Ordinal  i  )  const

Local vector access function.

ArrayRCP to the local values in the ith vector of this multi-vector.

template<typename Ordinal, typename Scalar>
Ordinal Tpetra::MultiVector< Ordinal, Scalar >::numVectors (  )  const

Returns the number of vectors in the multi-vector.

template<typename Ordinal, typename Scalar>
Ordinal Tpetra::MultiVector< Ordinal, Scalar >::myLength (  )  const

Returns the local vector length on the calling processor of vectors in the multi-vector.

template<typename Ordinal, typename Scalar>
Ordinal Tpetra::MultiVector< Ordinal, Scalar >::globalLength (  )  const

Returns the global vector length of vectors in the multi-vector.

template<typename Ordinal, typename Scalar>
Ordinal Tpetra::MultiVector< Ordinal, Scalar >::stride (  )  const

Returns the stride between vectors in the multi-vector (only meaningful if ConstantStride() is true). WARNING: this may vary from node to node.

template<typename Ordinal, typename Scalar>
bool Tpetra::MultiVector< Ordinal, Scalar >::constantStride (  )  const

Returns true if this multi-vector has constant stride between vectors. WARNING: This may vary from node to node.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::print ( std::ostream &  os  )  const [virtual]

Print method.

Reimplemented from Tpetra::DistObject< Ordinal, Scalar >.

template<typename Ordinal, typename Scalar>
bool Tpetra::MultiVector< Ordinal, Scalar >::checkSizes ( const DistObject< Ordinal, Scalar > &  sourceObj,
Ordinal &  packetSize 
) [protected, virtual]

Allows the source and target (this) objects to be compared for compatibility.

Return true if they are compatible, return false if they aren't. Also return the number of Scalar variables representing an entry.

Implements Tpetra::DistObject< Ordinal, Scalar >.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::copyAndPermute ( const DistObject< Ordinal, Scalar > &  sourceObj,
Ordinal  numSameIDs,
const Teuchos::ArrayView< const Ordinal > &  permuteToLIDs,
const Teuchos::ArrayView< const Ordinal > &  permuteFromLIDs 
) [protected, virtual]

Perform copies and permutations that are local to this image.

Parameters:
source In On entry, the DistObject that we are importing from.
numSameIDs In On entry, the number of elements that are the same on the source and dest objects. (i.e. The element is owned by the same image in both source and dest, and no permutation occurs.)
numPermuteIDs In On entry, the number of elements that are locally permuted between source and dest objects.
permuteToLIDs In On entry, contains a list of the elements that are permuted. (Listed by their LID in the destination DistObject.)
permuteFromLIDs In On entry, contains a list of the elements that are permuted. (Listed by their LID in the source DistObject.)

Implements Tpetra::DistObject< Ordinal, Scalar >.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::packAndPrepare ( const DistObject< Ordinal, Scalar > &  sourceObj,
const Teuchos::ArrayView< const Ordinal > &  exportLIDs,
const Teuchos::ArrayView< Scalar > &  exports,
Distributor< Ordinal > &  distor 
) [protected, virtual]

Perform any packing or preparation required for communication.

Parameters:
source In On entry, the DistObject that we are importing from.
exportLIDs In On entry, a list of the entries we will be sending to other images. (Listed by their LID in the source DistObject.)
exports Out On exit, buffer for data we will be sending out.
distor In On entry, contains the Distributor object we are using.

Implements Tpetra::DistObject< Ordinal, Scalar >.

template<typename Ordinal, typename Scalar>
void Tpetra::MultiVector< Ordinal, Scalar >::unpackAndCombine ( const Teuchos::ArrayView< const Ordinal > &  importLIDs,
const Teuchos::ArrayView< const Scalar > &  imports,
Distributor< Ordinal > &  distor,
CombineMode  CM 
) [protected, virtual]

Perform any unpacking and combining after communication.

Parameters:
importLIDs In On entry, a list of the entries we received from other images. (Listed by their LID in the target DistObject.)
imports In Buffer containing data we received.
distor In The Distributor object we are using.
CM In The Tpetra::CombineMode to use when combining the imported entries with existing entries.

Implements Tpetra::DistObject< Ordinal, Scalar >.


The documentation for this class was generated from the following files:
Generated on Wed May 12 21:59:41 2010 for Tpetra Matrix/Vector Services by  doxygen 1.4.7