|
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) |
| 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 | MvInit (MV &mv, const Scalar alpha=Teuchos::ScalarTraits< Scalar >::zero()) |
| static void | MvPrint (const MV &mv, std::ostream &os) |
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.)