

Public Member Functions | |
| def | Clone |
| def | CloneCopy |
| def | CloneViewNonConst |
| def | CloneView |
| def | GetVecLength |
| def | GetNumberVecs |
| def | HasConstantStride |
| def | MvTimesMatAddMv |
| def | MvAddMv |
| def | MvTransMv |
| def | MvDot |
| def | MvNorm |
| def | SetBlock |
| def | Assign |
| def | MvScale |
| def | MvRandom |
| def | MvInit |
| def | MvPrint |
| def | __init__ |
Public Attributes | |
| this | |
Proxy of C++ Anasazi::MultiVecTraits<(double,Epetra_MultiVector)> class
| def PyTrilinos.Anasazi.MultiVecTraitsEpetra.__init__ | ( | self, | |
| args | |||
| ) |
__init__(Anasazi::MultiVecTraits<(double,Epetra_MultiVector)> self) -> MultiVecTraitsEpetra Traits class which defines basic operations on multivectors. Parameters: ----------- ScalarType: The type of the entries in the multivectors. MV: The type of the multivectors themselves. This traits class tells Anasazi's solvers how to perform multivector operations for the multivector type MV. These operations include creating copies or views, finding the number of rows or columns (i.e., vectors) in a given multivector, and computing inner products, norms, and vector sums. (Anasazi's solvers use the OperatorTraits traits class to apply operators to multivectors.) Anasazi gives users two different ways to tell its solvers how to compute with multivectors of a given type MV. The first and preferred way is for users to specialize MultiVecTraits, this traits class, for their given MV type. Anasazi provides specializations for MV = Epetra_MultiVector, Tpetra::MultiVector, and Thyra::MultiVectorBase. The second way is for users to make their multivector type (or a wrapper thereof) inherit from MultiVec. This works because Anasazi provides a specialization of MultiVecTraits for MultiVec. Specializing MultiVecTraits is more flexible because it does not require a multivector type to inherit from MultiVec; this is possible even if you do not have control over the interface of a class. If you have a different multivector type MV that you would like to use with Anasazi, and if that type does not inherit from MultiVec, then you must implement a specialization of MultiVecTraits for MV. Otherwise, this traits class will report a compile-time error (relating to UndefinedMultiVecTraits). Specializing MultiVecTraits for your MV type is not hard. Just look at the examples for Epetra_MultiVector (in anasazi/epetra/src/AnasaziEpetraAdapter.hpp) and Tpetra::MultiVector (in anasazi/tpetra/src/AnasaziTpetraAdapter.hpp). You do not need to write a specialization of MultiVecTraits if you are using Epetra, Tpetra, or Thyra multivectors. Anasazi already provides specializations for these types. Just relax and enjoy using the solvers! C++ includes: AnasaziMultiVecTraits.hpp
| def PyTrilinos.Anasazi.MultiVecTraitsEpetra.Assign | ( | args | ) |
Assign(Epetra_MultiVector A, Epetra_MultiVector mv) static void Anasazi::MultiVecTraits< ScalarType, MV >::Assign(const MV &A, MV &mv) mv := A Assign (deep copy) A into mv.
| def PyTrilinos.Anasazi.MultiVecTraitsEpetra.Clone | ( | args | ) |
Clone(Epetra_MultiVector mv, int const outNumVecs) -> Teuchos::RCP< Epetra_MultiVector > static Teuchos::RCP<MV> Anasazi::MultiVecTraits< ScalarType, MV >::Clone(const MV &mv, const int numvecs) Creates a new empty MV containing numvecs columns. Reference-counted pointer to the new multivector of type MV.
CloneCopy(Epetra_MultiVector mv) -> Teuchos::RCP< Epetra_MultiVector > CloneCopy(Epetra_MultiVector mv, VectorInt index) -> Teuchos::RCP< Epetra_MultiVector > CloneCopy(Epetra_MultiVector mv, Teuchos::Range1D const & index) -> Teuchos::RCP< Epetra_MultiVector > static Teuchos::RCP<MV> Anasazi::MultiVecTraits< ScalarType, MV >::CloneCopy(const MV &mv, const Teuchos::Range1D &index) 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. Parameters: ----------- mv: [in] Multivector to copy index: [in] Inclusive index range of columns of mv Reference-counted pointer to the new multivector of type MV.
CloneView(Epetra_MultiVector mv, Teuchos::Range1D const & index) -> Teuchos::RCP< Epetra_MultiVector > static Teuchos::RCP<MV> Anasazi::MultiVecTraits< ScalarType, MV >::CloneView(MV &mv, const Teuchos::Range1D &index) Const view of specified columns of mv. Return a const view of the columns of mv specified by the given inclusive index range. Parameters: ----------- mv: [in] Multivector to view (shallow const copy) index: [in] Inclusive index range of columns of mv Reference-counted pointer to the const view of specified columns of mv
CloneViewNonConst(Epetra_MultiVector mv, VectorInt index) -> Teuchos::RCP< Epetra_MultiVector > CloneViewNonConst(Epetra_MultiVector mv, Teuchos::Range1D const & index) -> Teuchos::RCP< Epetra_MultiVector > static Teuchos::RCP<MV> Anasazi::MultiVecTraits< ScalarType, MV >::CloneViewNonConst(MV &mv, const Teuchos::Range1D &index) 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. Parameters: ----------- mv: [in] Multivector to view (shallow non-const copy) index: [in] Inclusive index range of columns of mv Reference-counted pointer to the non-const view of specified columns of mv
GetNumberVecs(Epetra_MultiVector mv) -> int static int Anasazi::MultiVecTraits< ScalarType, MV >::GetNumberVecs(const MV &mv) Obtain the number of vectors in mv.
GetVecLength(Epetra_MultiVector mv) -> int static int Anasazi::MultiVecTraits< ScalarType, MV >::GetVecLength(const MV &mv) Obtain the vector length of mv.
HasConstantStride(Epetra_MultiVector mv) -> bool
| def PyTrilinos.Anasazi.MultiVecTraitsEpetra.MvAddMv | ( | args | ) |
MvAddMv(double alpha, Epetra_MultiVector A, double beta, Epetra_MultiVector B, Epetra_MultiVector mv) static void Anasazi::MultiVecTraits< ScalarType, MV >::MvAddMv(const ScalarType alpha, const MV &A, const ScalarType beta, const MV &B, MV &mv) Replace mv with $\\alpha A + \\beta B$.
| def PyTrilinos.Anasazi.MultiVecTraitsEpetra.MvDot | ( | args | ) |
MvDot(Epetra_MultiVector A, Epetra_MultiVector B, std::vector< double,std::allocator< double > > & b) static void Anasazi::MultiVecTraits< ScalarType, MV >::MvDot(const MV &mv, const MV &A, std::vector< ScalarType > &b) 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]$.
| def PyTrilinos.Anasazi.MultiVecTraitsEpetra.MvInit | ( | args | ) |
MvInit(Epetra_MultiVector mv, double alpha=Teuchos::ScalarTraits< double >::zero()) static void Anasazi::MultiVecTraits< ScalarType, MV >::MvInit(MV &mv, const ScalarType alpha=Teuchos::ScalarTraits< ScalarType >::zero()) Replace each element of the vectors in mv with alpha.
| def PyTrilinos.Anasazi.MultiVecTraitsEpetra.MvNorm | ( | args | ) |
MvNorm(Epetra_MultiVector mv, std::vector< double,std::allocator< double > > & normvec) static void Anasazi::MultiVecTraits< ScalarType, MV >::MvNorm(const MV &mv, std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > &normvec) Compute the 2-norm of each individual vector of mv. Upon return, normvec[i] holds the value of $||mv_i||_2$, the i-th column of mv.
| def PyTrilinos.Anasazi.MultiVecTraitsEpetra.MvPrint | ( | args | ) |
MvPrint(Epetra_MultiVector mv, std::ostream & os) static void Anasazi::MultiVecTraits< ScalarType, MV >::MvPrint(const MV &mv, std::ostream &os) Print the mv multi-vector to the os output stream.
| def PyTrilinos.Anasazi.MultiVecTraitsEpetra.MvRandom | ( | args | ) |
MvRandom(Epetra_MultiVector mv) static void Anasazi::MultiVecTraits< ScalarType, MV >::MvRandom(MV &mv) Replace the vectors in mv with random vectors.
| def PyTrilinos.Anasazi.MultiVecTraitsEpetra.MvScale | ( | args | ) |
MvScale(Epetra_MultiVector mv, double alpha) MvScale(Epetra_MultiVector mv, std::vector< double,std::allocator< double > > const & alpha) static void Anasazi::MultiVecTraits< ScalarType, MV >::MvScale(MV &mv, const std::vector< ScalarType > &alpha) Scale each element of the i-th vector in mv with alpha[i].
MvTimesMatAddMv(double alpha, Epetra_MultiVector A, Teuchos::SerialDenseMatrix< int,double > const & B,
double beta, Epetra_MultiVector mv)
static void Anasazi::MultiVecTraits< ScalarType, MV
>::MvTimesMatAddMv(const ScalarType alpha, const MV &A, const
Teuchos::SerialDenseMatrix< int, ScalarType > &B, const ScalarType
beta, MV &mv)
Update mv with $ \\alpha AB + \\beta mv $.
MvTransMv(double alpha, Epetra_MultiVector A, Epetra_MultiVector mv, Teuchos::SerialDenseMatrix< int,double > & B) static void Anasazi::MultiVecTraits< ScalarType, MV >::MvTransMv(const ScalarType alpha, const MV &A, const MV &mv, Teuchos::SerialDenseMatrix< int, ScalarType > &B) Compute a dense matrix B through the matrix-matrix multiply $ \\alpha A^Hmv $.
| def PyTrilinos.Anasazi.MultiVecTraitsEpetra.SetBlock | ( | args | ) |
SetBlock(Epetra_MultiVector A, VectorInt index, Epetra_MultiVector mv) SetBlock(Epetra_MultiVector A, Teuchos::Range1D const & index, Epetra_MultiVector mv) static void Anasazi::MultiVecTraits< ScalarType, MV >::SetBlock(const MV &A, const Teuchos::Range1D &index, MV &mv) 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()] Parameters: ----------- A: [in] Source multivector index: [in] Inclusive index range of columns of mv; index set of the target mv: [out] Target multivector
1.7.6.1