Stokhos  Development
Static Public Member Functions | List of all members
Belos::MultiVecTraits< BaseScalar, Tpetra::MultiVector< Sacado::MP::Vector< Storage >, LO, GO, Node, true > > Class Template Reference

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

#include <Belos_TpetraAdapter_MP_Vector.hpp>

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. More...
 
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 ptrdiff_t GetGlobalLength (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 More...
 
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, true > >

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, true > >::Clone ( const Tpetra::MultiVector< Scalar, LO, GO, Node > &  mv,
const int  numvecs 
)
inlinestatic

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, true > >::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 
)
inlinestatic

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: