|
Anasazi Version of the Day
|
Specialization of MultiVecTraits for MV = Tpetra::MultiVector. More...
#include <AnasaziTpetraAdapter.hpp>
Static Public Member Functions | |
| static Teuchos::RCP< MV > | Clone (const MV &X, const int numVecs) |
Create a new MultiVector with numVecs columns. | |
| 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. | |
| static Teuchos::RCP< MV > | CloneCopy (const MV &mv, const Teuchos::Range1D &index) |
| Create and return a deep copy of the given columns of mv. | |
| static void | MvAddMv (Scalar alpha, const MV &A, Scalar beta, const MV &B, MV &mv) |
mv := alpha*A + beta*B | |
| static void | MvDot (const MV &A, const MV &B, std::vector< Scalar > &dots) |
For all columns j of A, set dots[j] := A[j]^T * B[j]. | |
| static void | MvNorm (const MV &mv, std::vector< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &normvec) |
For all columns j of mv, set normvec[j] = norm(mv[j]). | |
Creation methods | |
| static Teuchos::RCP< Tpetra::MultiVector< Scalar, LO, GO, Node > > | Clone (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const int numvecs) |
Creates a new empty MV containing numvecs columns. | |
| static Teuchos::RCP< Tpetra::MultiVector< Scalar, LO, GO, Node > > | CloneCopy (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv) |
Creates a new MV and copies contents of mv into the new vector (deep copy). | |
| static Teuchos::RCP< Tpetra::MultiVector< Scalar, LO, GO, Node > > | CloneCopy (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const std::vector< int > &index) |
Creates a new MV and copies the selected contents of mv into the new vector (deep copy). | |
| static Teuchos::RCP< Tpetra::MultiVector< Scalar, LO, GO, Node > > | CloneCopy (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const Teuchos::Range1D &index) |
| Deep copy of specified columns of mv. | |
| static Teuchos::RCP< Tpetra::MultiVector< Scalar, LO, GO, Node > > | CloneViewNonConst (Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const std::vector< int > &index) |
Creates a new MV that shares the selected contents of mv (shallow copy). | |
| static Teuchos::RCP< Tpetra::MultiVector< Scalar, LO, GO, Node > > | CloneViewNonConst (Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const Teuchos::Range1D &index) |
| Non-const view of specified columns of mv. | |
| static Teuchos::RCP< const Tpetra::MultiVector< Scalar, LO, GO, Node > > | CloneView (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const std::vector< int > &index) |
Creates a new const MV that shares the selected contents of mv (shallow copy). | |
| static Teuchos::RCP< const Tpetra::MultiVector< Scalar, LO, GO, Node > > | CloneView (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const Teuchos::Range1D &index) |
| Const view of specified columns of mv. | |
Attribute methods | |
| static ptrdiff_t | GetGlobalLength (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv) |
Return the number of rows in the given multivector mv. | |
| static int | GetNumberVecs (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv) |
Obtain the number of vectors in mv. | |
Update methods | |
| 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) |
Update mv with ![]() | |
| static void | MvAddMv (const Scalar alpha, const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, const Scalar beta, const Tpetra::MultiVector< Scalar, LO, GO, Node > &B, Tpetra::MultiVector< Scalar, LO, GO, Node > &mv) |
Replace mv with ![]() | |
| static void | MvScale (Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const Scalar alpha) |
Scale each element of the vectors in mv with alpha. | |
| static void | MvScale (Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const std::vector< Scalar > &alpha) |
Scale each element of the i-th vector in mv with alpha[i]. | |
| static void | MvTransMv (const Scalar alpha, const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, const Tpetra::MultiVector< Scalar, LO, GO, Node > &B, Teuchos::SerialDenseMatrix< int, Scalar > &C) |
Compute C := alpha * A^H B. | |
| static void | MvDot (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, std::vector< Scalar > &b) |
Compute a vector b where the components are the individual dot-products of the i-th columns of A and mv, i.e. ![]() | |
Norm method | |
| static void | MvNorm (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, std::vector< typename Teuchos::ScalarTraits< Scalar >::magnitudeType > &normvec) |
Compute the 2-norm of each individual vector of mv. Upon return, normvec[i] holds the value of ![]() i-th column of mv. | |
Initialization methods | |
| static void | SetBlock (const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, const std::vector< int > &index, Tpetra::MultiVector< Scalar, LO, GO, Node > &mv) |
Copy the vectors in A to a set of vectors in mv indicated by the indices given in index. | |
| static void | SetBlock (const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, const Teuchos::Range1D &index, Tpetra::MultiVector< Scalar, LO, GO, Node > &mv) |
| Deep copy of A into specified columns of mv. | |
| static void | Assign (const Tpetra::MultiVector< Scalar, LO, GO, Node > &A, Tpetra::MultiVector< Scalar, LO, GO, Node > &mv) |
| mv := A | |
| static void | MvRandom (Tpetra::MultiVector< Scalar, LO, GO, Node > &mv) |
Replace the vectors in mv with random vectors. | |
| static void | MvInit (Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, const Scalar alpha=Teuchos::ScalarTraits< Scalar >::zero()) |
Replace each element of the vectors in mv with alpha. | |
Print method | |
| static void | MvPrint (const Tpetra::MultiVector< Scalar, LO, GO, Node > &mv, std::ostream &os) |
Print the mv multi-vector to the os output stream. | |
Specialization of MultiVecTraits for MV = Tpetra::MultiVector.
This interface lets Anasazi' solvers work directly with Tpetra::MultiVector objects as the MultiVector type. That type corresponds to the MV template parameter, which is the second template parameter (after Scalar) of most Anasazi classes.
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.
Definition at line 117 of file AnasaziTpetraAdapter.hpp.
|
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.
Definition at line 125 of file AnasaziTpetraAdapter.hpp.
|
inlinestatic |
Create and return a deep copy of X.
Definition at line 132 of file AnasaziTpetraAdapter.hpp.
|
inlinestatic |
Create and return a deep copy of the given columns of mv.
0 <= k < index.size(), Definition at line 160 of file AnasaziTpetraAdapter.hpp.
|
inlinestatic |
Create and return a deep copy of the given columns of mv.
Definition at line 196 of file AnasaziTpetraAdapter.hpp.
|
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.)
Definition at line 412 of file AnasaziTpetraAdapter.hpp.
|
inlinestatic |
For all columns j of A, set dots[j] := A[j]^T * B[j].
Definition at line 508 of file AnasaziTpetraAdapter.hpp.
|
inlinestatic |
For all columns j of mv, set normvec[j] = norm(mv[j]).
Definition at line 532 of file AnasaziTpetraAdapter.hpp.
|
inlinestatic |
Creates a new empty MV containing numvecs columns.
MV. Definition at line 136 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Creates a new MV and copies contents of mv into the new vector (deep copy).
MV. Definition at line 143 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Creates a new MV and copies the selected contents of mv into the new vector (deep copy).
The copied vectors from mv are indicated by the index.size() indices in index.
MV. Definition at line 151 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Deep copy of specified columns of mv.
Create a new MV, and copy (deep copy) the columns of mv specified by the given inclusive index range into the new multivector.
| mv | [in] Multivector to copy |
| index | [in] Inclusive index range of columns of mv |
MV. Definition at line 163 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Creates a new MV that shares the selected contents of mv (shallow copy).
The index of the numvecs vectors shallow copied from mv are indicated by the indices given in index.
MV. Definition at line 171 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Non-const view of specified columns of mv.
Return a non-const view of the columns of mv specified by the given inclusive index range.
| mv | [in] Multivector to view (shallow non-const copy) |
| index | [in] Inclusive index range of columns of mv |
Definition at line 182 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Creates a new const MV that shares the selected contents of mv (shallow copy).
The index of the numvecs vectors shallow copied from mv are indicated by the indices given in index.
MV. Definition at line 190 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Const view of specified columns of mv.
Return a const view of the columns of mv specified by the given inclusive index range.
| mv | [in] Multivector to view (shallow const copy) |
| index | [in] Inclusive index range of columns of mv |
Definition at line 201 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Return the number of rows in the given multivector mv.
Definition at line 210 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Obtain the number of vectors in mv.
Definition at line 214 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Update mv with 
Definition at line 224 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Replace mv with 
Definition at line 231 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Scale each element of the vectors in mv with alpha.
Definition at line 236 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Scale each element of the i-th vector in mv with alpha[i].
Definition at line 241 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Compute C := alpha * A^H B.
The result C is a dense, globally replicated matrix.
Definition at line 248 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Compute a vector b where the components are the individual dot-products of the i-th columns of A and mv, i.e. ![$b[i] = A[i]^Hmv[i]$](form_67.png)
Definition at line 254 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Compute the 2-norm of each individual vector of mv. Upon return, normvec[i] holds the value of 
i-th column of mv.
Definition at line 264 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Copy the vectors in A to a set of vectors in mv indicated by the indices given in index.
The numvecs vectors in A are copied to a subset of vectors in mv indicated by the indices given in index, i.e. mv[index[i]] = A[i].
Definition at line 276 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Deep copy of A into specified columns of mv.
(Deeply) copy the first index.size() columns of A into the columns of mv specified by the given index range.
Postcondition: mv[i] = A[i - index.lbound()] for all i in [index.lbound(), index.ubound()]
| A | [in] Source multivector |
| index | [in] Inclusive index range of columns of mv; index set of the target |
| mv | [out] Target multivector |
Definition at line 291 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
|
inlinestatic |
Replace the vectors in mv with random vectors.
Definition at line 302 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Replace each element of the vectors in mv with alpha.
Definition at line 307 of file AnasaziMultiVecTraits.hpp.
|
inlinestatic |
Print the mv multi-vector to the os output stream.
Definition at line 317 of file AnasaziMultiVecTraits.hpp.