All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > Class Template Reference

#include <Xpetra_BlockedMultiVector.hpp>

Inheritance diagram for Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >:
Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > Xpetra::DistObject< Scalar, LocalOrdinal, GlobalOrdinal, Node > Teuchos::Describable Teuchos::LabeledObject Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > Xpetra::ReorderedBlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >

Public Types

typedef Scalar scalar_type
 
typedef LocalOrdinal local_ordinal_type
 
typedef GlobalOrdinal global_ordinal_type
 
typedef Node node_type
 
- Public Types inherited from Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >
typedef Scalar scalar_type
 
typedef LocalOrdinal local_ordinal_type
 
typedef GlobalOrdinal global_ordinal_type
 
typedef Node node_type
 

Public Member Functions

Teuchos::RCP< const MapgetMap () const
 Access function for the underlying Map this DistObject was constructed with. More...
 
Teuchos::RCP< const
Xpetra::BlockedMap
< LocalOrdinal, GlobalOrdinal,
Node > > 
getBlockedMap () const
 Access function for the underlying Map this DistObject was constructed with. More...
 
Teuchos::RCP< MultiVectorgetMultiVector (size_t r) const
 return partial multivector associated with block row r More...
 
Teuchos::RCP< MultiVectorgetMultiVector (size_t r, bool bThyraMode) const
 return partial multivector associated with block row r More...
 
void setMultiVector (size_t r, Teuchos::RCP< const MultiVector > v, bool bThyraMode)
 set partial multivector associated with block row r More...
 
Teuchos::RCP< MultiVectorMerge () const
 merge BlockedMultiVector blocks to a single MultiVector More...
 
- Public Member Functions inherited from Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >
virtual ~MultiVector ()
 Destructor. More...
 
MultiVector< Scalar,
LocalOrdinal, GlobalOrdinal,
Node > & 
operator= (const MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &rhs)
 Assignment operator: Does a deep copy. More...
 
- Public Member Functions inherited from Xpetra::DistObject< Scalar, LocalOrdinal, GlobalOrdinal, Node >
virtual ~DistObject ()
 Destructor. More...
 
- Public Member Functions inherited from Teuchos::Describable
void describe (std::ostream &out, const EVerbosityLevel verbLevel=verbLevel_default) const
 
virtual ~Describable ()
 
 LabeledObject ()
 
virtual ~LabeledObject ()
 
virtual void setObjectLabel (const std::string &objectLabel)
 
virtual std::string getObjectLabel () const
 
DescribableStreamManipulatorState describe (const Describable &describable, const EVerbosityLevel verbLevel=Describable::verbLevel_default)
 
std::ostream & operator<< (std::ostream &os, const DescribableStreamManipulatorState &d)
 

Protected Member Functions

virtual void assign (const MultiVector &rhs)
 Implementation of the assignment operator (operator=); does a deep copy. More...
 

Private Member Functions

void ExtractVector (RCP< const MultiVector > &full, size_t block, RCP< MultiVector > &partial) const
 
void ExtractVector (RCP< MultiVector > &full, size_t block, RCP< MultiVector > &partial) const
 
RCP< MultiVectorExtractVector (RCP< const MultiVector > &full, size_t block, bool bThyraMode=false) const
 
RCP< MultiVectorExtractVector (RCP< MultiVector > &full, size_t block, bool bThyraMode=false) const
 
void ExtractVector (const MultiVector &full, size_t block, MultiVector &partial) const
 
void InsertVector (const MultiVector &partial, size_t block, MultiVector &full, bool bThyraMode=false) const
 
void InsertVector (RCP< const MultiVector > partial, size_t block, RCP< MultiVector > full, bool bThyraMode=false) const
 
void InsertVector (RCP< MultiVector > partial, size_t block, RCP< MultiVector > full, bool bThyraMode=false) const
 

Private Attributes

Teuchos::RCP< const BlockedMapmap_
 blocked map containing the sub block maps (either thyra or xpetra mode) More...
 
std::vector< Teuchos::RCP
< MultiVector > > 
vv_
 array containing RCPs of the partial vectors More...
 
size_t numVectors_
 number of vectors (columns in multi vector) More...
 

Constructor/Destructor Methods

 BlockedMultiVector (const Teuchos::RCP< const BlockedMap > &map, size_t NumVectors, bool zeroOut=true)
 Constructor. More...
 
 BlockedMultiVector (Teuchos::RCP< const Xpetra::BlockedMap< LocalOrdinal, GlobalOrdinal, Node > > bmap, Teuchos::RCP< const MultiVector > v)
 
 BlockedMultiVector (Teuchos::RCP< const Xpetra::BlockedMap< LocalOrdinal, GlobalOrdinal, Node > > bmap, Teuchos::RCP< MultiVector > v)
 
 BlockedMultiVector (Teuchos::RCP< const Xpetra::MapExtractor< Scalar, LocalOrdinal, GlobalOrdinal, Node > > mapExtractor, Teuchos::RCP< const MultiVector > v)
 
 BlockedMultiVector (Teuchos::RCP< const Xpetra::MapExtractor< Scalar, LocalOrdinal, GlobalOrdinal, Node > > mapExtractor, Teuchos::RCP< MultiVector > v)
 
 BlockedMultiVector (const Teuchos::RCP< const BlockedMap > &map, std::vector< Teuchos::RCP< MultiVector > > &vin)
 
virtual ~BlockedMultiVector ()
 Destructor. More...
 
BlockedMultiVector< Scalar,
LocalOrdinal, GlobalOrdinal,
Node > & 
operator= (const MultiVector &rhs)
 Assignment operator: Does a deep copy. More...
 

Post-construction modification routines

virtual void replaceGlobalValue (GlobalOrdinal, size_t, const Scalar &)
 Replace value, using global (row) index. More...
 
virtual void sumIntoGlobalValue (GlobalOrdinal, size_t, const Scalar &)
 Add value to existing value, using global (row) index. More...
 
virtual void replaceLocalValue (LocalOrdinal, size_t, const Scalar &)
 Replace value, using local (row) index. More...
 
virtual void sumIntoLocalValue (LocalOrdinal, size_t, const Scalar &)
 Add value to existing value, using local (row) index. More...
 
virtual void putScalar (const Scalar &value)
 Set all values in the multivector with the given value. More...
 

Data Copy and View get methods

virtual Teuchos::RCP< const
Xpetra::Vector< Scalar,
LocalOrdinal, GlobalOrdinal,
Node > > 
getVector (size_t j) const
 Return a Vector which is a const view of column j. More...
 
virtual Teuchos::RCP
< Xpetra::Vector< Scalar,
LocalOrdinal, GlobalOrdinal,
Node > > 
getVectorNonConst (size_t j)
 Return a Vector which is a nonconst view of column j. More...
 
virtual Teuchos::ArrayRCP
< const Scalar > 
getData (size_t j) const
 Const view of the local values in a particular vector of this multivector. More...
 
virtual Teuchos::ArrayRCP< Scalar > getDataNonConst (size_t j)
 View of the local values in a particular vector of this multivector. More...
 

Mathematical methods

virtual void dot (const MultiVector &, const Teuchos::ArrayView< Scalar > &) const
 Compute dot product of each corresponding pair of vectors, dots[i] = this[i].dot(A[i]). More...
 
virtual void abs (const MultiVector &)
 Put element-wise absolute values of input Multi-vector in target: A = abs(this). More...
 
virtual void reciprocal (const MultiVector &)
 Put element-wise reciprocal values of input Multi-vector in target, this(i,j) = 1/A(i,j). More...
 
virtual void scale (const Scalar &alpha)
 Scale the current values of a multi-vector, this = alpha*this. More...
 
virtual void scale (Teuchos::ArrayView< const Scalar > alpha)
 Scale the current values of a multi-vector, this[j] = alpha[j]*this[j]. More...
 
virtual void update (const Scalar &alpha, const MultiVector &A, const Scalar &beta)
 Update multi-vector values with scaled values of A, this = beta*this + alpha*A. More...
 
virtual void update (const Scalar &alpha, const MultiVector &A, const Scalar &beta, const MultiVector &B, const Scalar &gamma)
 Update multi-vector with scaled values of A and B, this = gamma*this + alpha*A + beta*B. More...
 
virtual void norm1 (const Teuchos::ArrayView< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &norms) const
 Compute 1-norm of each vector in multi-vector. More...
 
virtual void norm2 (const Teuchos::ArrayView< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &norms) const
 
virtual void normInf (const Teuchos::ArrayView< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &norms) const
 Compute Inf-norm of each vector in multi-vector. More...
 
virtual void meanValue (const Teuchos::ArrayView< Scalar > &) const
 Compute mean (average) value of each vector in multi-vector. The outcome of this routine is undefined for non-floating point scalar types (e.g., int). More...
 
virtual void multiply (Teuchos::ETransp, Teuchos::ETransp, const Scalar &, const MultiVector &, const MultiVector &, const Scalar &)
 Matrix-matrix multiplication: this = beta*this + alpha*op(A)*op(B). More...
 
virtual void elementWiseMultiply (Scalar scalarAB, const Xpetra::Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &A, const MultiVector &B, Scalar scalarThis)
 Element-wise multiply of a Vector A with a MultiVector B. More...
 

Attribute access functions

virtual size_t getNumVectors () const
 Number of columns in the multivector. More...
 
virtual size_t getLocalLength () const
 Local number of rows on the calling process. More...
 
virtual global_size_t getGlobalLength () const
 Global number of rows in the multivector. More...
 
virtual bool isSameSize (const Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &vec) const
 Local number of rows on the calling process. More...
 

Overridden from Teuchos::Describable

virtual std::string description () const
 A simple one-line description of this object. More...
 
virtual void describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const
 Print the object with the given verbosity level to a FancyOStream. More...
 
virtual void replaceMap (const RCP< const Map > &map)
 
virtual void doImport (const DistObject< Scalar, LocalOrdinal, GlobalOrdinal, Node > &, const Import &, CombineMode)
 Import. More...
 
virtual void doExport (const DistObject< Scalar, LocalOrdinal, GlobalOrdinal, Node > &, const Import &, CombineMode)
 Export. More...
 
virtual void doImport (const DistObject< Scalar, LocalOrdinal, GlobalOrdinal, Node > &, const Export &, CombineMode)
 Import (using an Exporter). More...
 
virtual void doExport (const DistObject< Scalar, LocalOrdinal, GlobalOrdinal, Node > &, const Export &, CombineMode)
 Export (using an Importer). More...
 

Xpetra specific

virtual void setSeed (unsigned int seed)
 Set seed for Random function. More...
 
virtual void randomize (bool bUseXpetraImplementation=false)
 Set multi-vector values to random numbers. More...
 
virtual void Xpetra_randomize ()
 Set multi-vector values to random numbers. XPetra implementation. More...
 

Additional Inherited Members

- Static Public Attributes inherited from Teuchos::Describable
static const EVerbosityLevel verbLevel_default
 

Detailed Description

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
class Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >

Definition at line 72 of file Xpetra_BlockedMultiVector.hpp.

Member Typedef Documentation

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
typedef Scalar Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::scalar_type

Definition at line 76 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
typedef LocalOrdinal Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::local_ordinal_type

Definition at line 77 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
typedef GlobalOrdinal Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::global_ordinal_type

Definition at line 78 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
typedef Node Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::node_type

Definition at line 79 of file Xpetra_BlockedMultiVector.hpp.

Constructor & Destructor Documentation

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::BlockedMultiVector ( const Teuchos::RCP< const BlockedMap > &  map,
size_t  NumVectors,
bool  zeroOut = true 
)
inline

Constructor.

Const version of constructor which accepts a const version of a blocked map

Parameters
mapBlockedMap defining the block structure of the multi vector
NumVectorsNumber of vector columns in multi vector
zeroOutIf true initialize multivector with zeros

Definition at line 99 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::BlockedMultiVector ( Teuchos::RCP< const Xpetra::BlockedMap< LocalOrdinal, GlobalOrdinal, Node > >  bmap,
Teuchos::RCP< const MultiVector v 
)
inline

Const version of constructor which accepts a const version of the multi-vector

Note
If you change the information in input vector v the data in the blocked multi-vector are not affected (and vice versa). Consider the blocked multivector to be a copy of the input multivector (not a view)
Parameters
bmapBlockedMap object containing information about the block splitting
vMultiVector that is to be splitted into a blocked multi vector

Definition at line 124 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::BlockedMultiVector ( Teuchos::RCP< const Xpetra::BlockedMap< LocalOrdinal, GlobalOrdinal, Node > >  bmap,
Teuchos::RCP< MultiVector v 
)
inline

NonConst version of constructor which accepts a const version of the multi-vector

Note
If you change the information in input vector v the data in the blocked multi-vector are not affected (and vice versa). Consider the blocked multivector to be a copy of the input multivector (not a view)
Parameters
bmapBlockedMap object containing information about the block splitting
vMultiVector that is to be splitted into a blocked multi vector

Definition at line 154 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::BlockedMultiVector ( Teuchos::RCP< const Xpetra::MapExtractor< Scalar, LocalOrdinal, GlobalOrdinal, Node > >  mapExtractor,
Teuchos::RCP< const MultiVector v 
)
inline

Const version of constructor which accepts a const version of the multi-vector

Note
If you change the information in input vector v the data in the blocked multi-vector are not affected (and vice versa). Consider the blocked multivector to be a copy of the input multivector (not a view)
Parameters
mapExtractorMapExtractor object containing information about the block splitting
vMultiVector that is to be splitted into a blocked multi vector

Definition at line 182 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::BlockedMultiVector ( Teuchos::RCP< const Xpetra::MapExtractor< Scalar, LocalOrdinal, GlobalOrdinal, Node > >  mapExtractor,
Teuchos::RCP< MultiVector v 
)
inline

Non-const version of constructor which accepts a non-const version of the multi-vector

Note
If you change the information in input vector v the data in the blocked multi-vector are not affected (and vice versa). Consider the blocked multivector to be a copy of the input multivector (not a view)
Parameters
mapExtractorMapExtractor object containing information about the block splitting
vMultiVector that is to be splitted into a blocked multi vector

Definition at line 212 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::BlockedMultiVector ( const Teuchos::RCP< const BlockedMap > &  map,
std::vector< Teuchos::RCP< MultiVector > > &  vin 
)
inline

Constructor to build a blocked multivector from a blocked map and component vectors

Note
We do NOT check map compatibility between the BlockedMap and the array of multivectors
Parameters
mapBlockedMap object containing information about the block splitting
vinA std::vector of RCPs to component vectors

Definition at line 238 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::~BlockedMultiVector ( )
inlinevirtual

Destructor.

Definition at line 247 of file Xpetra_BlockedMultiVector.hpp.

Member Function Documentation

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
BlockedMultiVector<Scalar,LocalOrdinal,GlobalOrdinal,Node>& Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::operator= ( const MultiVector rhs)
inline

Assignment operator: Does a deep copy.

The assignment operator does a deep copy, just like subclasses' copy constructors.

Note
This currently only works if both *this and the input argument are instances of the same subclass.

Definition at line 262 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::replaceGlobalValue ( GlobalOrdinal  ,
size_t  ,
const Scalar &   
)
inlinevirtual
template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::sumIntoGlobalValue ( GlobalOrdinal  ,
size_t  ,
const Scalar &   
)
inlinevirtual

Add value to existing value, using global (row) index.

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 277 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::replaceLocalValue ( LocalOrdinal  ,
size_t  ,
const Scalar &   
)
inlinevirtual
template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::sumIntoLocalValue ( LocalOrdinal  ,
size_t  ,
const Scalar &   
)
inlinevirtual

Add value to existing value, using local (row) index.

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 287 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::putScalar ( const Scalar &  value)
inlinevirtual

Set all values in the multivector with the given value.

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 292 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual Teuchos::RCP< const Xpetra::Vector<Scalar,LocalOrdinal,GlobalOrdinal,Node> > Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getVector ( size_t  j) const
inlinevirtual
template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual Teuchos::RCP< Xpetra::Vector<Scalar,LocalOrdinal,GlobalOrdinal,Node> > Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getVectorNonConst ( size_t  j)
inlinevirtual
template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual Teuchos::ArrayRCP< const Scalar > Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getData ( size_t  j) const
inlinevirtual

Const view of the local values in a particular vector of this multivector.

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 325 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual Teuchos::ArrayRCP< Scalar > Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getDataNonConst ( size_t  j)
inlinevirtual

View of the local values in a particular vector of this multivector.

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 334 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::dot ( const MultiVector ,
const Teuchos::ArrayView< Scalar > &   
) const
inlinevirtual

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

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 348 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::abs ( const MultiVector )
inlinevirtual

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

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 353 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::reciprocal ( const MultiVector )
inlinevirtual

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

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 358 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::scale ( const Scalar &  alpha)
inlinevirtual

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

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 363 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::scale ( Teuchos::ArrayView< const Scalar >  alpha)
inlinevirtual

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

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 373 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::update ( const Scalar &  alpha,
const MultiVector A,
const Scalar &  beta 
)
inlinevirtual

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

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 383 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::update ( const Scalar &  alpha,
const MultiVector A,
const Scalar &  beta,
const MultiVector B,
const Scalar &  gamma 
)
inlinevirtual

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

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 443 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::norm1 ( const Teuchos::ArrayView< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &  norms) const
inlinevirtual

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

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 467 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::norm2 ( const Teuchos::ArrayView< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &  norms) const
inlinevirtual
template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::normInf ( const Teuchos::ArrayView< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &  norms) const
inlinevirtual

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

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 503 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::meanValue ( const Teuchos::ArrayView< Scalar > &  ) const
inlinevirtual

Compute mean (average) value of each vector in multi-vector. The outcome of this routine is undefined for non-floating point scalar types (e.g., int).

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 519 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::multiply ( Teuchos::ETransp  ,
Teuchos::ETransp  ,
const Scalar &  ,
const MultiVector ,
const MultiVector ,
const Scalar &   
)
inlinevirtual

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

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 524 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::elementWiseMultiply ( Scalar  scalarAB,
const Xpetra::Vector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  A,
const MultiVector B,
Scalar  scalarThis 
)
inlinevirtual
template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual size_t Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getNumVectors ( ) const
inlinevirtual
template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual size_t Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getLocalLength ( ) const
inlinevirtual

Local number of rows on the calling process.

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 570 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual global_size_t Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getGlobalLength ( ) const
inlinevirtual
template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual bool Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::isSameSize ( const Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  vec) const
inlinevirtual

Local number of rows on the calling process.

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 582 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual std::string Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::description ( ) const
inlinevirtual
template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::describe ( Teuchos::FancyOStream out,
const Teuchos::EVerbosityLevel  verbLevel = Teuchos::Describable::verbLevel_default 
) const
inlinevirtual
template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::replaceMap ( const RCP< const Map > &  map)
inlinevirtual
template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::doImport ( const DistObject< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  ,
const Import ,
CombineMode   
)
inlinevirtual
template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::doExport ( const DistObject< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  ,
const Import ,
CombineMode   
)
inlinevirtual
template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::doImport ( const DistObject< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  ,
const Export ,
CombineMode   
)
inlinevirtual
template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::doExport ( const DistObject< Scalar, LocalOrdinal, GlobalOrdinal, Node > &  ,
const Export ,
CombineMode   
)
inlinevirtual
template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::setSeed ( unsigned int  seed)
inlinevirtual
template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::randomize ( bool  bUseXpetraImplementation = false)
inlinevirtual
template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Xpetra_randomize ( )
inlinevirtual

Set multi-vector values to random numbers. XPetra implementation.

Reimplemented from Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 678 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
Teuchos::RCP< const Map> Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getMap ( ) const
inlinevirtual

Access function for the underlying Map this DistObject was constructed with.

Implements Xpetra::DistObject< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 728 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
Teuchos::RCP< const Xpetra::BlockedMap<LocalOrdinal,GlobalOrdinal,Node> > Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getBlockedMap ( ) const
inline

Access function for the underlying Map this DistObject was constructed with.

Definition at line 731 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
Teuchos::RCP<MultiVector> Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getMultiVector ( size_t  r) const
inline

return partial multivector associated with block row r

Definition at line 734 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
Teuchos::RCP<MultiVector> Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getMultiVector ( size_t  r,
bool  bThyraMode 
) const
inline

return partial multivector associated with block row r

Definition at line 741 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::setMultiVector ( size_t  r,
Teuchos::RCP< const MultiVector v,
bool  bThyraMode 
)
inline

set partial multivector associated with block row r

Definition at line 750 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
Teuchos::RCP<MultiVector> Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Merge ( ) const
inline

merge BlockedMultiVector blocks to a single MultiVector

Definition at line 766 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
virtual void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::assign ( const MultiVector rhs)
inlineprotectedvirtual

Implementation of the assignment operator (operator=); does a deep copy.

Each subclass must implement this. This includes Xpetra::EpetraMultiVector and Xpetra::TpetraMultiVector as well as Xpetra::BockedMultiVector

Implements Xpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Reimplemented in Xpetra::BlockedVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >.

Definition at line 795 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::ExtractVector ( RCP< const MultiVector > &  full,
size_t  block,
RCP< MultiVector > &  partial 
) const
inlineprivate

Definition at line 842 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::ExtractVector ( RCP< MultiVector > &  full,
size_t  block,
RCP< MultiVector > &  partial 
) const
inlineprivate

Definition at line 843 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
RCP<MultiVector> Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::ExtractVector ( RCP< const MultiVector > &  full,
size_t  block,
bool  bThyraMode = false 
) const
inlineprivate

Definition at line 845 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
RCP<MultiVector> Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::ExtractVector ( RCP< MultiVector > &  full,
size_t  block,
bool  bThyraMode = false 
) const
inlineprivate

Definition at line 876 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::ExtractVector ( const MultiVector full,
size_t  block,
MultiVector partial 
) const
inlineprivate

Definition at line 906 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::InsertVector ( const MultiVector partial,
size_t  block,
MultiVector full,
bool  bThyraMode = false 
) const
inlineprivate

Definition at line 913 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::InsertVector ( RCP< const MultiVector partial,
size_t  block,
RCP< MultiVector full,
bool  bThyraMode = false 
) const
inlineprivate

Definition at line 953 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
void Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::InsertVector ( RCP< MultiVector partial,
size_t  block,
RCP< MultiVector full,
bool  bThyraMode = false 
) const
inlineprivate

Definition at line 963 of file Xpetra_BlockedMultiVector.hpp.

Member Data Documentation

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
Teuchos::RCP<const BlockedMap> Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::map_
private

blocked map containing the sub block maps (either thyra or xpetra mode)

Definition at line 975 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
std::vector<Teuchos::RCP<MultiVector> > Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::vv_
private

array containing RCPs of the partial vectors

Definition at line 976 of file Xpetra_BlockedMultiVector.hpp.

template<class Scalar = double, class LocalOrdinal = Map<>::local_ordinal_type, class GlobalOrdinal = typename Map<LocalOrdinal>::global_ordinal_type, class Node = typename Map<LocalOrdinal, GlobalOrdinal>::node_type>
size_t Xpetra::BlockedMultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::numVectors_
private

number of vectors (columns in multi vector)

Definition at line 977 of file Xpetra_BlockedMultiVector.hpp.


The documentation for this class was generated from the following file: