Stokhos  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Public Types | Static Public Member Functions | Static Public Attributes | List of all members
Belos::MultiVecTraits< typename Storage::value_type, Tpetra::MultiVector< Sacado::UQ::PCE< Storage >, LO, GO, Node > > Class Template Reference

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

#include <Belos_TpetraAdapter_UQ_PCE.hpp>

Public Types

typedef Storage::ordinal_type s_ordinal
 
typedef Storage::value_type BaseScalar
 
typedef Sacado::UQ::PCE< Storage > Scalar
 
typedef Tpetra::MultiVector
< Scalar, LO, GO, Node > 
MV
 
typedef Tpetra::MultiVector
< Scalar, LO, GO, Node >
::dot_type 
dot_type
 
typedef Tpetra::MultiVector
< Scalar, LO, GO, Node >
::mag_type 
mag_type
 

Static Public Member Functions

static Teuchos::RCP< MV > Clone (const MV &X, const int numVecs)
 Create a new MultiVector with numVecs columns. More...
 
static Teuchos::RCP< MV > CloneCopy (const MV &X)
 Create and return a deep copy of X.
 
static Teuchos::RCP< MV > CloneCopy (const MV &mv, const std::vector< int > &index)
 Create and return a deep copy of the given columns of mv. More...
 
static Teuchos::RCP< MV > CloneCopy (const MV &mv, const Teuchos::Range1D &index)
 Create and return a deep copy of the given columns of mv. More...
 
static Teuchos::RCP< MV > CloneViewNonConst (MV &mv, const std::vector< int > &index)
 
static Teuchos::RCP< MV > CloneViewNonConst (MV &mv, const Teuchos::Range1D &index)
 
static Teuchos::RCP< const MV > CloneView (const MV &mv, const std::vector< int > &index)
 
static Teuchos::RCP< const MV > CloneView (const MV &mv, const Teuchos::Range1D &index)
 
static ptrdiff_t GetGlobalLength (const MV &mv)
 
static int GetNumberVecs (const MV &mv)
 
static bool HasConstantStride (const MV &mv)
 
static void MvTimesMatAddMv (const dot_type &alpha, const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, const Teuchos::SerialDenseMatrix< int, dot_type > &B, const dot_type &beta, Tpetra::MultiVector< Scalar, LO, GO, Node > &C)
 
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 (dot_type alpha, const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, const Tpetra::MultiVector< Scalar, LO, GO, Node > &B, Teuchos::SerialDenseMatrix< int, dot_type > &C)
 
static void MvDot (const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, const Tpetra::MultiVector< Scalar, LO, GO, Node > &B, std::vector< dot_type > &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< mag_type > &normvec, NormType type=TwoNorm)
 For all columns j of mv, set normvec[j] = norm(mv[j]).
 
static void SetBlock (const MV &A, const std::vector< int > &index, MV &mv)
 
static void SetBlock (const MV &A, const Teuchos::Range1D &index, MV &mv)
 
static void Assign (const MV &A, MV &mv)
 
static void MvRandom (MV &mv)
 
static void MvPrint (const MV &mv, std::ostream &os)
 

Static Public Attributes

static void
 

Detailed Description

template<class Storage, class LO, class GO, class Node>
class Belos::MultiVecTraits< typename Storage::value_type, Tpetra::MultiVector< Sacado::UQ::PCE< 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 Storage , class LO , class GO , class Node >
static Teuchos::RCP<MV> Belos::MultiVecTraits< typename Storage::value_type, Tpetra::MultiVector< Sacado::UQ::PCE< Storage >, LO, GO, Node > >::Clone ( const MV &  X,
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 X. Its entries are not initialized and have undefined values.

template<class Storage , class LO , class GO , class Node >
static Teuchos::RCP<MV> Belos::MultiVecTraits< typename Storage::value_type, Tpetra::MultiVector< Sacado::UQ::PCE< Storage >, LO, GO, Node > >::CloneCopy ( const MV &  mv,
const std::vector< int > &  index 
)
inlinestatic

Create and return a deep copy of the given columns of mv.

Precondition
mv.getNumVectors() != 0 || index.size() == 0
For all k such that 0 <= k < index.size(),
0 <= index[k] < mv.getNumVectors();
Postcondition
If this method returns Y:
Y->isConstantStride() && Y->getNumVectors() == index.size();
template<class Storage , class LO , class GO , class Node >
static Teuchos::RCP<MV> Belos::MultiVecTraits< typename Storage::value_type, Tpetra::MultiVector< Sacado::UQ::PCE< Storage >, LO, GO, Node > >::CloneCopy ( const MV &  mv,
const Teuchos::Range1D &  index 
)
inlinestatic

Create and return a deep copy of the given columns of mv.

Postcondition
If this method returns Y:
Y->isConstantStride() && Y->getNumVectors() == index.size();
template<class Storage , class LO , class GO , class Node >
static void Belos::MultiVecTraits< typename Storage::value_type, Tpetra::MultiVector< Sacado::UQ::PCE< 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 
)
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.)

Member Data Documentation

template<class Storage , class LO , class GO , class Node >
Belos::MultiVecTraits< typename Storage::value_type, Tpetra::MultiVector< Sacado::UQ::PCE< Storage >, LO, GO, Node > >::void
static
Initial value:
{
mv.putScalar (alpha)

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