

Public Member Functions | |
| def | __init__ |
| def | Clone |
| def | CloneCopy |
| def | CloneViewNonConst |
| def | CloneView |
| def | GetVecLength |
| def | GetNumberVecs |
| def | MvTimesMatAddMv |
| def | MvAddMv |
| def | MvScale |
| def | MvTransMv |
| def | MvDot |
| def | MvNorm |
| def | SetBlock |
| def | MvRandom |
| def | MvInit |
| def | MvPrint |
Interface for multivectors used by Anasazi's linear solvers. Ulrich Hetmaniuk, Rich Lehoucq, and Heidi Thornquist Parameters: ----------- ScalarType: The type of entries of the multivector. Anasazi accesses multivectors through a traits interface called MultiVecTraits. If you want to use Anasazi with your own multivector class MV, you may either specialize MultiVecTraits for MV, or you may wrap MV in your own class that implements MultiVec. Specializing MultiVecTraits works via compile-time polymorphism, whereas implementing the MultiVec interface works via run-time polymorphism. You may pick whichever option you like. However, specializing MultiVecTraits is the preferred method. This is because Anasazi's linear solvers always use a specialization of MultiVecTraits to access multivector operations. They only use MultiVec through a specialization of the MultiVecTraits traits class, which is implemented below in this header file. If you want your multivector class (or a wrapper thereof) to implement the MultiVec interface, you should inherit from MultiVec<ScalarType>, where ScalarType is the type of entries in the multivector. For example, a multivector with entries of type double would inherit from MultiVec<double>. C++ includes: AnasaziMultiVec.hpp
| def PyTrilinos.Anasazi.MultiVecDouble.Clone | ( | self, | |
| args | |||
| ) |
Clone(MultiVecDouble self, int const numvecs) -> MultiVecDouble virtual MultiVec<ScalarType>* Anasazi::MultiVec< ScalarType >::Clone(const int numvecs) const =0 Create a new MultiVec with numvecs columns. Pointer to the new multivector with uninitialized values.
Reimplemented in PyTrilinos.Anasazi.EpetraMultiVec.
| def PyTrilinos.Anasazi.MultiVecDouble.CloneCopy | ( | self, | |
| args | |||
| ) |
CloneCopy(MultiVecDouble self) -> MultiVecDouble CloneCopy(MultiVecDouble self, VectorInt index) -> MultiVecDouble virtual MultiVec<ScalarType>* Anasazi::MultiVec< ScalarType >::CloneCopy(const std::vector< int > &index) const =0 Creates a new Anasazi::MultiVec 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. Pointer to the new multivector
Reimplemented in PyTrilinos.Anasazi.EpetraMultiVec.
| def PyTrilinos.Anasazi.MultiVecDouble.CloneView | ( | self, | |
| args | |||
| ) |
CloneView(MultiVecDouble self, VectorInt index) -> MultiVecDouble virtual const MultiVec<ScalarType>* Anasazi::MultiVec< ScalarType >::CloneView(const std::vector< int > &index) const =0 Creates a new Anasazi::MultiVec 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. Pointer to the new multivector
Reimplemented in PyTrilinos.Anasazi.EpetraMultiVec.
| def PyTrilinos.Anasazi.MultiVecDouble.CloneViewNonConst | ( | self, | |
| args | |||
| ) |
CloneViewNonConst(MultiVecDouble self, VectorInt index) -> MultiVecDouble virtual MultiVec<ScalarType>* Anasazi::MultiVec< ScalarType >::CloneViewNonConst(const std::vector< int > &index)=0 Creates a new Anasazi::MultiVec 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. Pointer to the new multivector
Reimplemented in PyTrilinos.Anasazi.EpetraMultiVec.
| def PyTrilinos.Anasazi.MultiVecDouble.GetNumberVecs | ( | self, | |
| args | |||
| ) |
GetNumberVecs(MultiVecDouble self) -> int virtual int Anasazi::MultiVec< ScalarType >::GetNumberVecs() const =0 The number of vectors (i.e., columns) in the multivector.
Reimplemented in PyTrilinos.Anasazi.EpetraMultiVec.
| def PyTrilinos.Anasazi.MultiVecDouble.GetVecLength | ( | self, | |
| args | |||
| ) |
GetVecLength(MultiVecDouble self) -> int virtual int Anasazi::MultiVec< ScalarType >::GetVecLength() const =0 The number of rows in the multivector.
Reimplemented in PyTrilinos.Anasazi.EpetraMultiVec.
| def PyTrilinos.Anasazi.MultiVecDouble.MvAddMv | ( | self, | |
| args | |||
| ) |
MvAddMv(MultiVecDouble self, double alpha, MultiVecDouble A, double beta, MultiVecDouble B) virtual void Anasazi::MultiVec< ScalarType >::MvAddMv(ScalarType alpha, const MultiVec< ScalarType > &A, ScalarType beta, const MultiVec< ScalarType > &B)=0 Replace *this with alpha * A + beta * B.
Reimplemented in PyTrilinos.Anasazi.EpetraMultiVec.
| def PyTrilinos.Anasazi.MultiVecDouble.MvDot | ( | self, | |
| args | |||
| ) |
MvDot(MultiVecDouble self, MultiVecDouble A, std::vector< double,std::allocator< double > > & b) virtual void Anasazi::MultiVec< ScalarType >::MvDot(const MultiVec< ScalarType > &A, std::vector< ScalarType > &b) const =0 Compute the dot product of each column of *this with the corresponding column of A. Compute a vector b whose entries are the individual dot-products. That is, b[i] = A[i]^H * (*this)[i] where A[i] is the i-th column of A.
Reimplemented in PyTrilinos.Anasazi.EpetraMultiVec.
| def PyTrilinos.Anasazi.MultiVecDouble.MvInit | ( | self, | |
| args | |||
| ) |
MvInit(MultiVecDouble self, double alpha) virtual void Anasazi::MultiVec< ScalarType >::MvInit(ScalarType alpha)=0 Replace each element of the vectors in *this with alpha.
Reimplemented in PyTrilinos.Anasazi.EpetraMultiVec.
| def PyTrilinos.Anasazi.MultiVecDouble.MvNorm | ( | self, | |
| args | |||
| ) |
MvNorm(MultiVecDouble self, std::vector< Teuchos::ScalarTraits< double >::magnitudeType,std::allocator< Teuchos::ScalarTraits< double >::magnitudeType > > & normvec) virtual void Anasazi::MultiVec< ScalarType >::MvNorm(std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > &normvec) const =0 Compute the 2-norm of each vector in *this. Parameters: ----------- normvec: [out] On output, normvec[i] holds the 2-norm of the i-th vector of *this.
Reimplemented in PyTrilinos.Anasazi.EpetraMultiVec.
| def PyTrilinos.Anasazi.MultiVecDouble.MvPrint | ( | self, | |
| args | |||
| ) |
MvPrint(MultiVecDouble self, std::ostream & os) virtual void Anasazi::MultiVec< ScalarType >::MvPrint(std::ostream &os) const =0 Print *this multivector to the os output stream.
Reimplemented in PyTrilinos.Anasazi.EpetraMultiVec.
| def PyTrilinos.Anasazi.MultiVecDouble.MvRandom | ( | self, | |
| args | |||
| ) |
MvRandom(MultiVecDouble self) virtual void Anasazi::MultiVec< ScalarType >::MvRandom()=0 Fill all the vectors in *this with random numbers.
Reimplemented in PyTrilinos.Anasazi.EpetraMultiVec.
| def PyTrilinos.Anasazi.MultiVecDouble.MvScale | ( | self, | |
| args | |||
| ) |
MvScale(MultiVecDouble self, double alpha) MvScale(MultiVecDouble self, std::vector< double,std::allocator< double > > const & alpha) virtual void Anasazi::MultiVec< ScalarType >::MvScale(const std::vector< ScalarType > &alpha)=0 Scale each element of the i-th vector in *this with alpha[i].
Reimplemented in PyTrilinos.Anasazi.EpetraMultiVec.
| def PyTrilinos.Anasazi.MultiVecDouble.MvTimesMatAddMv | ( | self, | |
| args | |||
| ) |
MvTimesMatAddMv(MultiVecDouble self, double alpha, MultiVecDouble A, Teuchos::SerialDenseMatrix< int,double > const & B,
double beta)
virtual
void Anasazi::MultiVec< ScalarType >::MvTimesMatAddMv(ScalarType
alpha, const MultiVec< ScalarType > &A, const
Teuchos::SerialDenseMatrix< int, ScalarType > &B, ScalarType beta)=0
Update *this with alpha * A * B + beta * ( *this).
Reimplemented in PyTrilinos.Anasazi.EpetraMultiVec.
| def PyTrilinos.Anasazi.MultiVecDouble.MvTransMv | ( | self, | |
| args | |||
| ) |
MvTransMv(MultiVecDouble self, double alpha, MultiVecDouble A, Teuchos::SerialDenseMatrix< int,double > & B) virtual void Anasazi::MultiVec< ScalarType >::MvTransMv(ScalarType alpha, const MultiVec< ScalarType > &A, Teuchos::SerialDenseMatrix< int, ScalarType > &B) const =0 Compute a dense matrix B through the matrix-matrix multiply alpha * A^T * ( *this).
Reimplemented in PyTrilinos.Anasazi.EpetraMultiVec.
| def PyTrilinos.Anasazi.MultiVecDouble.SetBlock | ( | self, | |
| args | |||
| ) |
SetBlock(MultiVecDouble self, MultiVecDouble A, VectorInt index) virtual void Anasazi::MultiVec< ScalarType >::SetBlock(const MultiVec< ScalarType > &A, const std::vector< int > &index)=0 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.
Reimplemented in PyTrilinos.Anasazi.EpetraMultiVec.
1.7.6.1