44 #ifndef STOKHOS_VECTORORTHOGPOLYTRAITSEPETRA_HPP 45 #define STOKHOS_VECTORORTHOGPOLYTRAITSEPETRA_HPP 49 #include "Teuchos_RCP.hpp" 50 #include "Epetra_Vector.h" 51 #include "EpetraExt_BlockVector.h" 52 #include "Epetra_Operator.h" 53 #include "Epetra_CrsMatrix.h" 66 Teuchos::RCP<Epetra_Vector>
clone(
int i)
const {
68 return Teuchos::rcp(
new Epetra_Vector(*
map));
70 return Teuchos::rcp(
new Epetra_Vector(*
vec));
75 const Epetra_BlockMap*
map;
76 const Epetra_Vector*
vec;
89 Teuchos::RCP<Epetra_MultiVector>
clone(
int i)
const {
91 return Teuchos::rcp(
new Epetra_MultiVector(*
map,
num_vecs));
93 return Teuchos::rcp(
new Epetra_MultiVector(*
vec));
96 const Epetra_BlockMap*
map;
97 const Epetra_MultiVector*
vec;
112 Teuchos::RCP<Epetra_CrsMatrix>
clone(
int i)
const {
113 return Teuchos::rcp(
new Epetra_CrsMatrix(
mat));
116 const Epetra_CrsMatrix&
mat;
134 static void init(Epetra_Vector& vec,
double val) { vec.PutScalar(
val); }
137 static void update(Epetra_Vector& vec,
double a,
const Epetra_Vector&
x) {
142 static std::ostream&
print(std::ostream& os,
const Epetra_Vector& vec) {
164 static void init(Epetra_MultiVector& vec,
double val) {
165 vec.PutScalar(
val); }
168 static void update(Epetra_MultiVector& vec,
double a,
169 const Epetra_MultiVector&
x) {
174 static std::ostream&
print(std::ostream& os,
175 const Epetra_MultiVector& vec) {
197 static void init(Epetra_CrsMatrix& mat,
double val) { mat.PutScalar(
val); }
200 static void update(Epetra_CrsMatrix& mat,
double a,
201 const Epetra_CrsMatrix&
x) {
203 for (
int i=0; i<mat.NumMyRows(); i++) {
204 mat.NumMyRowEntries(i, num_col);
205 for (
int j=0;
j<num_col;
j++)
206 mat[i][
j] += a*
x[i][
j];
211 static std::ostream&
print(std::ostream& os,
const Epetra_CrsMatrix& mat) {
233 static void init(Epetra_Operator& op,
double val) {
234 Epetra_CrsMatrix& mat =
dynamic_cast<Epetra_CrsMatrix&
>(op);
239 static void update(Epetra_Operator& op,
double a,
240 const Epetra_Operator& x_op) {
241 Epetra_CrsMatrix& mat =
dynamic_cast<Epetra_CrsMatrix&
>(op);
242 const Epetra_CrsMatrix&
x =
dynamic_cast<const Epetra_CrsMatrix&
>(x_op);
247 static std::ostream&
print(std::ostream& os,
const Epetra_Operator& op) {
248 os <<
"Epetra_Operator" << std::endl;
249 const Epetra_CrsMatrix& mat =
dynamic_cast<const Epetra_CrsMatrix&
>(op);
258 #endif // STOKHOS_VECTORORTHOGPOLYTRAITSEPETRA_HPP Teuchos::RCP< Epetra_CrsMatrix > clone(int i) const
EpetraExt::BlockVector * block_vec
static std::ostream & print(std::ostream &os, const Epetra_Vector &vec)
Print vector.
Teuchos::RCP< Epetra_MultiVector > clone(int i) const
const Epetra_BlockMap * map
EpetraCrsMatrixCloner cloner_type
Typename of cloner.
const IndexType num_vectors
const Epetra_Vector * vec
static void init(Epetra_MultiVector &vec, double val)
Initialize vector.
static std::ostream & print(std::ostream &os, const Epetra_Operator &op)
Print operator.
const Epetra_CrsMatrix & mat
double value_type
Typename of values.
int ordinal_type
Typename of ordinals.
double value_type
Typename of values.
int ordinal_type
Typename of ordinals.
Cloner for Epetra_Vector coefficients.
EpetraVectorCloner(const Epetra_BlockMap &map_)
EpetraMultiVectorCloner(const Epetra_BlockMap &map_, int num_vectors)
const Epetra_MultiVector * vec
static std::ostream & print(std::ostream &os, const Epetra_CrsMatrix &mat)
Print matrix.
Cloner for Epetra_CrsMatrix coefficients.
double value_type
Typename of values.
Base traits definition for ProductContainer.
EpetraCrsMatrixCloner(const Epetra_CrsMatrix &mat_)
static void init(Epetra_Vector &vec, double val)
Initialize vector.
Cloner for Epetra_Operator coefficients.
const IndexType const IndexType const IndexType const IndexType const ValueType const ValueType * x
int ordinal_type
Typename of ordinals.
static void update(Epetra_Vector &vec, double a, const Epetra_Vector &x)
Update vector.
Top-level namespace for Stokhos classes and functions.
static void init(Epetra_CrsMatrix &mat, double val)
Initialize matrix.
static std::ostream & print(std::ostream &os, const Epetra_MultiVector &vec)
Print vector.
const Epetra_BlockMap * map
double value_type
Typename of values.
Teuchos::RCP< Epetra_Vector > clone(int i) const
static void init(Epetra_Operator &op, double val)
Initialize operator.
EpetraMultiVectorCloner cloner_type
Typename of cloner.
static void update(Epetra_Operator &op, double a, const Epetra_Operator &x_op)
Update operator.
int ordinal_type
Typename of ordinals.
EpetraVectorCloner(const Epetra_Vector &vec_)
EpetraVectorCloner(EpetraExt::BlockVector &block_vec_)
EpetraMultiVectorCloner(const Epetra_MultiVector &vec_)
static void update(Epetra_MultiVector &vec, double a, const Epetra_MultiVector &x)
Update vector.
Cloner for Epetra_MultiVector coefficients.
static void update(Epetra_CrsMatrix &mat, double a, const Epetra_CrsMatrix &x)
Update matrix.
void update(const ValueType &alpha, VectorType &x, const ValueType &beta, const VectorType &y)
EpetraOperatorCloner cloner_type
Typename of cloner.
EpetraVectorCloner cloner_type
Typename of cloner.