#include <AnasaziEpetraAdapter.hpp>
Public Member Functions | |
Constructors/Destructors | |
EpetraMultiVec (const Epetra_BlockMap &Map_in, const int numvecs) | |
Basic EpetraMultiVec constructor. | |
EpetraMultiVec (const Epetra_MultiVector &P_vec) | |
Copy constructor. | |
EpetraMultiVec (const Epetra_BlockMap &Map_in, double *array, const int numvecs, const int stride=0) | |
Create multi-vector with values from two dimensional array. | |
EpetraMultiVec (Epetra_DataAccess CV, const Epetra_MultiVector &P_vec, const std::vector< int > &index) | |
Create multi-vector from list of vectors in an existing EpetraMultiVec. | |
virtual | ~EpetraMultiVec () |
Destructor. | |
Creation methods | |
MultiVec< double > * | Clone (const int numvecs) const |
Creates a new empty EpetraMultiVec containing numvecs columns. | |
MultiVec< double > * | CloneCopy () const |
Creates a new EpetraMultiVec and copies contents of *this into the new vector (deep copy). | |
MultiVec< double > * | CloneCopy (const std::vector< int > &index) const |
Creates a new EpetraMultiVec and copies the selected contents of *this into the new vector (deep copy). | |
MultiVec< double > * | CloneView (const std::vector< int > &index) |
Creates a new EpetraMultiVec that shares the selected contents of *this . | |
Attribute methods | |
int | GetNumberVecs () const |
Obtain the vector length of *this. | |
int | GetVecLength () const |
Obtain the number of vectors in *this. | |
Update methods | |
void | MvTimesMatAddMv (double alpha, const MultiVec< double > &A, const Teuchos::SerialDenseMatrix< int, double > &B, double beta) |
Update *this with ![]() | |
void | MvAddMv (double alpha, const MultiVec< double > &A, double beta, const MultiVec< double > &B) |
Replace *this with ![]() | |
void | MvTransMv (double alpha, const MultiVec< double > &A, Teuchos::SerialDenseMatrix< int, double > &B) const |
Compute a dense matrix B through the matrix-matrix multiply ![]() | |
void | MvDot (const MultiVec< double > &A, std::vector< double > &b) const |
Compute a vector b where the components are the individual dot-products, i.e. ![]() A [i] is the i-th column of A . | |
void | MvScale (double alpha) |
Scale each element of the vectors in *this with alpha . | |
void | MvScale (const std::vector< double > &alpha) |
Scale each element of the i-th vector in *this with alpha [i]. | |
Norm method | |
void | MvNorm (std::vector< double > &normvec) const |
Compute the 2-norm of each individual vector of *this . Upon return, normvec [i] holds the 2-norm of the i-th vector of *this . | |
Initialization methods | |
void | SetBlock (const MultiVec< double > &A, const std::vector< int > &index) |
Copy the vectors in A to a set of vectors in *this . | |
void | MvRandom () |
Fill the vectors in *this with random numbers. | |
void | MvInit (double alpha) |
Replace each element of the vectors in *this with alpha . | |
Print method | |
void | MvPrint (std::ostream &os) const |
Print *this EpetraMultiVec. |
Definition at line 82 of file AnasaziEpetraAdapter.hpp.
Anasazi::EpetraMultiVec::EpetraMultiVec | ( | const Epetra_BlockMap & | Map_in, | |
const int | numvecs | |||
) |
Basic EpetraMultiVec constructor.
Map | [in] An Epetra_LocalMap, Epetra_Map or Epetra_BlockMap. | |
numvecs | [in] Number of vectors in multi-vector. |
Definition at line 52 of file AnasaziEpetraAdapter.cpp.
Anasazi::EpetraMultiVec::EpetraMultiVec | ( | const Epetra_MultiVector & | P_vec | ) |
Anasazi::EpetraMultiVec::EpetraMultiVec | ( | const Epetra_BlockMap & | Map_in, | |
double * | array, | |||
const int | numvecs, | |||
const int | stride = 0 | |||
) |
Create multi-vector with values from two dimensional array.
Map | [in] An Epetra_LocalMap, Epetra_Map or Epetra_BlockMap | |
array | [in] Pointer to an array of double precision numbers. The first vector starts at array , the second at array+stride , and so on. This array is copied. | |
numvecs | [in] Number of vectors in the multi-vector. | |
stride | [in] The stride between vectors in memory of array . |
Definition at line 45 of file AnasaziEpetraAdapter.cpp.
Anasazi::EpetraMultiVec::EpetraMultiVec | ( | Epetra_DataAccess | CV, | |
const Epetra_MultiVector & | P_vec, | |||
const std::vector< int > & | index | |||
) |
Create multi-vector from list of vectors in an existing EpetraMultiVec.
CV | [in] Enumerated type set to Copy or View. | |
P_vec | [in] An existing fully constructed Epetra_MultiVector. | |
index | [in] A integer vector containing the indices of the vectors to copy out of P_vec . |
Definition at line 58 of file AnasaziEpetraAdapter.cpp.
virtual Anasazi::EpetraMultiVec::~EpetraMultiVec | ( | ) | [inline, virtual] |
MultiVec< double > * Anasazi::EpetraMultiVec::Clone | ( | const int | numvecs | ) | const [virtual] |
Creates a new empty EpetraMultiVec containing numvecs
columns.
Implements Anasazi::MultiVec< double >.
Definition at line 81 of file AnasaziEpetraAdapter.cpp.
MultiVec< double > * Anasazi::EpetraMultiVec::CloneCopy | ( | const std::vector< int > & | index | ) | const [virtual] |
Creates a new EpetraMultiVec and copies the selected contents of *this
into the new vector (deep copy).
The copied vectors from *this
are indicated by the index.size()
indices in index
.
Implements Anasazi::MultiVec< double >.
Definition at line 99 of file AnasaziEpetraAdapter.cpp.
MultiVec< double > * Anasazi::EpetraMultiVec::CloneCopy | ( | ) | const [virtual] |
Creates a new EpetraMultiVec and copies contents of *this
into the new vector (deep copy).
Implements Anasazi::MultiVec< double >.
Definition at line 92 of file AnasaziEpetraAdapter.cpp.
MultiVec< double > * Anasazi::EpetraMultiVec::CloneView | ( | const std::vector< int > & | index | ) | [virtual] |
Creates a new EpetraMultiVec that shares the selected contents of *this
.
The index of the numvecs
vectors shallow copied from *this
are indicated by the indices given in index
.
Implements Anasazi::MultiVec< double >.
Definition at line 106 of file AnasaziEpetraAdapter.cpp.
int Anasazi::EpetraMultiVec::GetNumberVecs | ( | ) | const [inline, virtual] |
Obtain the vector length of *this.
Implements Anasazi::MultiVec< double >.
Definition at line 163 of file AnasaziEpetraAdapter.hpp.
int Anasazi::EpetraMultiVec::GetVecLength | ( | ) | const [inline, virtual] |
Obtain the number of vectors in *this.
Implements Anasazi::MultiVec< double >.
Definition at line 166 of file AnasaziEpetraAdapter.hpp.
void Anasazi::EpetraMultiVec::MvAddMv | ( | double | alpha, | |
const MultiVec< double > & | A, | |||
double | beta, | |||
const MultiVec< double > & | B | |||
) | [virtual] |
Replace *this
with .
Implements Anasazi::MultiVec< double >.
Definition at line 159 of file AnasaziEpetraAdapter.cpp.
void Anasazi::EpetraMultiVec::MvDot | ( | const MultiVec< double > & | A, | |
std::vector< double > & | b | |||
) | const [virtual] |
Compute a vector b
where the components are the individual dot-products, i.e. where
A
[i] is the i-th column of A
.
Implements Anasazi::MultiVec< double >.
Definition at line 203 of file AnasaziEpetraAdapter.cpp.
void Anasazi::EpetraMultiVec::MvInit | ( | double | alpha | ) | [inline, virtual] |
Replace each element of the vectors in *this
with alpha
.
Implements Anasazi::MultiVec< double >.
Definition at line 243 of file AnasaziEpetraAdapter.hpp.
void Anasazi::EpetraMultiVec::MvNorm | ( | std::vector< double > & | normvec | ) | const [inline] |
Compute the 2-norm of each individual vector of *this
. Upon return, normvec
[i] holds the 2-norm of the i-th
vector of *this
.
Definition at line 217 of file AnasaziEpetraAdapter.hpp.
void Anasazi::EpetraMultiVec::MvPrint | ( | std::ostream & | os | ) | const [inline, virtual] |
Print *this
EpetraMultiVec.
Implements Anasazi::MultiVec< double >.
Definition at line 253 of file AnasaziEpetraAdapter.hpp.
void Anasazi::EpetraMultiVec::MvRandom | ( | ) | [inline, virtual] |
Fill the vectors in *this
with random numbers.
Implements Anasazi::MultiVec< double >.
Definition at line 236 of file AnasaziEpetraAdapter.hpp.
void Anasazi::EpetraMultiVec::MvScale | ( | const std::vector< double > & | alpha | ) | [virtual] |
Scale each element of the i-th
vector in *this
with alpha
[i].
Implements Anasazi::MultiVec< double >.
Definition at line 224 of file AnasaziEpetraAdapter.cpp.
void Anasazi::EpetraMultiVec::MvScale | ( | double | alpha | ) | [inline, virtual] |
Scale each element of the vectors in *this
with alpha
.
Implements Anasazi::MultiVec< double >.
Definition at line 201 of file AnasaziEpetraAdapter.hpp.
void Anasazi::EpetraMultiVec::MvTimesMatAddMv | ( | double | alpha, | |
const MultiVec< double > & | A, | |||
const Teuchos::SerialDenseMatrix< int, double > & | B, | |||
double | beta | |||
) | [virtual] |
Update *this
with .
Implements Anasazi::MultiVec< double >.
Definition at line 139 of file AnasaziEpetraAdapter.cpp.
void Anasazi::EpetraMultiVec::MvTransMv | ( | double | alpha, | |
const MultiVec< double > & | A, | |||
Teuchos::SerialDenseMatrix< int, double > & | B | |||
) | const [virtual] |
Compute a dense matrix B
through the matrix-matrix multiply .
Implements Anasazi::MultiVec< double >.
Definition at line 178 of file AnasaziEpetraAdapter.cpp.
void Anasazi::EpetraMultiVec::SetBlock | ( | const MultiVec< double > & | A, | |
const std::vector< int > & | index | |||
) | [virtual] |
Copy the vectors in A
to a set of vectors in *this
.
The numvecs
vectors in A
are copied to a subset of vectors in *this
indicated by the indices given in index
.
Implements Anasazi::MultiVec< double >.
Definition at line 113 of file AnasaziEpetraAdapter.cpp.