Stokhos
Development
|
Partial specialization of MultiVecTraits for MV = Tpetra::MultiVector. More...
#include <Belos_TpetraAdapter_MP_Vector.hpp>
Public Types | |
typedef Storage::ordinal_type | s_ordinal |
typedef Storage::value_type | BaseScalar |
typedef Sacado::MP::Vector < 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) |
template<class DstType , class SrcType > | |
static void | deep_copy_2d_view_with_intercessory_space (const DstType &dst, const SrcType &src) |
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 |
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.
|
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.
|
inlinestatic |
Create and return a deep copy of the given columns of mv.
0 <= k < index.size()
,
|
inlinestatic |
Create and return a deep copy of the given columns of 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.)
|
static |