Stokhos  Development
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator
Static Public Member Functions
Belos::MultiVecTraits< BaseScalar, Tpetra::MultiVector< Sacado::MP::Vector< Storage >, LO, GO, Node > > Class Template Reference

Partial specialization of MultiVecTraits for MV = Tpetra::MultiVector. More...

#include <Belos_TpetraAdapter_MP_Vector.hpp>

List of all members.

Static Public Member Functions

static Teuchos::RCP
< Tpetra::MultiVector< Scalar,
LO, GO, Node > > 
Clone (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const int numvecs)
 Create a new multivector with numvecs columns.
static Teuchos::RCP
< Tpetra::MultiVector< Scalar,
LO, GO, Node > > 
CloneCopy (const Tpetra::MultiVector< Scalar, LO, GO, Node > &X)
static Teuchos::RCP
< Tpetra::MultiVector< Scalar,
LO, GO, Node > > 
CloneCopy (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const std::vector< int > &index)
static Teuchos::RCP
< Tpetra::MultiVector< Scalar,
LO, GO, Node > > 
CloneCopy (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const Teuchos::Range1D &index)
static Teuchos::RCP
< Tpetra::MultiVector< Scalar,
LO, GO, Node > > 
CloneViewNonConst (Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const std::vector< int > &index)
static Teuchos::RCP
< Tpetra::MultiVector< Scalar,
LO, GO, Node > > 
CloneViewNonConst (Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const Teuchos::Range1D &index)
static Teuchos::RCP< const
Tpetra::MultiVector< Scalar,
LO, GO, Node > > 
CloneView (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const std::vector< int > &index)
static Teuchos::RCP< const
Tpetra::MultiVector< Scalar,
LO, GO, Node > > 
CloneView (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const Teuchos::Range1D &index)
static int GetVecLength (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv)
static int GetNumberVecs (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv)
static bool HasConstantStride (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv)
static void MvTimesMatAddMv (const Scalar &alpha, const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, const Teuchos::SerialDenseMatrix< int, BaseScalar > &B, const Scalar &beta, Tpetra::MultiVector< Scalar, LO, GO, Node > &mv)
static void MvTimesMatAddMv (const Scalar &alpha, const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, const Teuchos::SerialDenseMatrix< int, Scalar > &B, const Scalar &beta, Tpetra::MultiVector< Scalar, LO, GO, Node > &mv)
static void MvAddMv (Scalar alpha, const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, Scalar beta, const Tpetra::MultiVector< Scalar, LO, GO, Node > &B, Tpetra::MultiVector< Scalar, LO, GO, Node > &mv)
 mv := alpha*A + beta*B
static void MvScale (Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const Scalar &alpha)
static void MvScale (Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const std::vector< BaseScalar > &alphas)
static void MvScale (Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const std::vector< Scalar > &alphas)
static void MvTransMv (Scalar alpha, const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, const Tpetra::MultiVector< Scalar, LO, GO, Node > &B, Teuchos::SerialDenseMatrix< int, BaseScalar > &C)
static void MvTransMv (Scalar alpha, const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, const Tpetra::MultiVector< Scalar, LO, GO, Node > &B, Teuchos::SerialDenseMatrix< int, Scalar > &C)
static void MvDot (const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, const Tpetra::MultiVector< Scalar, LO, GO, Node > &B, std::vector< BaseScalar > &dots)
 For all columns j of A, set dots[j] := A[j]^T * B[j].
static void MvNorm (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, std::vector< typename Teuchos::ScalarTraits< BaseScalar >::magnitudeType > &normvec, NormType type=TwoNorm)
 For all columns j of mv, set normvec[j] = norm(mv[j]).
static void SetBlock (const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, const std::vector< int > &index, Tpetra::MultiVector< Scalar, LO, GO, Node > &mv)
static void SetBlock (const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, const Teuchos::Range1D &index, Tpetra::MultiVector< Scalar, LO, GO, Node > &mv)
static void Assign (const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, Tpetra::MultiVector< Scalar, LO, GO, Node > &mv)
static void MvRandom (Tpetra::MultiVector< Scalar, LO, GO, Node > &mv)
static void MvInit (Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, Scalar alpha=Teuchos::ScalarTraits< Scalar >::zero())
static void MvPrint (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, std::ostream &os)

Detailed Description

template<class BaseScalar, class Storage, class LO, class GO, class Node>
class Belos::MultiVecTraits< BaseScalar, Tpetra::MultiVector< Sacado::MP::Vector< Storage >, LO, GO, Node > >

Partial specialization of MultiVecTraits for MV = Tpetra::MultiVector.

This interface lets Belos' solvers work directly with Tpetra::MultiVector objects as the multivector type (corresponding to the MV template parameter).

The four template parameters of this partial specialization correspond exactly to the four template parameters of Tpetra::MultiVector. See the Tpetra::MultiVector documentation for more information.


Member Function Documentation

template<class BaseScalar , class Storage , class LO , class GO , class Node >
static Teuchos::RCP<Tpetra::MultiVector<Scalar,LO,GO,Node> > Belos::MultiVecTraits< BaseScalar, Tpetra::MultiVector< Sacado::MP::Vector< Storage >, LO, GO, Node > >::Clone ( const Tpetra::MultiVector< Scalar, LO, GO, Node > &  mv,
const int  numvecs 
) [inline, static]

Create a new multivector with numvecs columns.

The returned Tpetra::MultiVector has the same Tpetra::Map (distribution over one or more parallel processes) as mv. Its entries are not initialized and have undefined values.

template<class BaseScalar , class Storage , class LO , class GO , class Node >
static void Belos::MultiVecTraits< BaseScalar, Tpetra::MultiVector< Sacado::MP::Vector< Storage >, LO, GO, Node > >::MvAddMv ( Scalar  alpha,
const Tpetra::MultiVector< Scalar, LO, GO, Node > &  A,
Scalar  beta,
const Tpetra::MultiVector< Scalar, LO, GO, Node > &  B,
Tpetra::MultiVector< Scalar, LO, GO, Node > &  mv 
) [inline, static]

mv := alpha*A + beta*B

The Tpetra specialization of this method ignores and completely overwrites any NaN or Inf entries in A. Thus, it does not mean the same thing as mv := 0*mv + alpha*A + beta*B in IEEE 754 floating-point arithmetic. (Remember that NaN*0 = NaN.)


The documentation for this class was generated from the following file:
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator