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. | |
|
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) |
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.
| 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.
| 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.)
1.7.6.1