44 #ifndef _fei_VectorTraits_Epetra_h_ 45 #define _fei_VectorTraits_Epetra_h_ 47 #ifdef HAVE_FEI_EPETRA 53 #include <fei_VectorTraits.hpp> 54 #include <fei_Include_Trilinos.hpp> 64 struct VectorTraits<Epetra_MultiVector> {
66 {
return(
"Epetra_MultiVector"); }
68 static int setValues(Epetra_MultiVector* vec,
int firstLocalOffset,
69 double scalar,
bool isSolnVector=
false)
71 return( vec->PutScalar(scalar) );
81 bool isSolnVector=
false,
84 double* localVecValues = (*vec)[vectorIndex];
86 for(
int i=0; i<numValues; ++i) {
87 localVecValues[indices[i]-firstLocalOffset] += values[i];
91 for(
int i=0; i<numValues; ++i) {
92 localVecValues[indices[i]-firstLocalOffset] = values[i];
99 static int copyOut(Epetra_MultiVector* vec,
100 int firstLocalOffset,
101 int numValues,
const int* indices,
double* values,
102 bool isSolnVector=
false,
105 double* localVecValues = (*vec)[vectorIndex];
106 for(
int i=0; i<numValues; ++i) {
107 values[i] = localVecValues[indices[i]-firstLocalOffset];
114 bool isSolnVector=
false,
117 return((*vec)[vectorIndex]);
120 static int update(Epetra_MultiVector* vec,
122 const Epetra_MultiVector* x,
125 return( vec->Update(a, *x, b) );
131 #endif //HAVE_FEI_EPETRA 133 #endif // _fei_VectorTraits_Epetra_hpp_ static int putValuesIn(T *vec, int firstLocalOffset, int numValues, const int *indices, const double *values, bool sum_into, bool isSolnVector=false, int vectorIndex=0)
static int update(T *vec, double a, const T *x, double b)
static int setValues(T *vec, int firstLocalOffset, double scalar, bool isSolnVector=false)
static double * getLocalCoefsPtr(T *vec, bool isSolnVector=false, int vectorIndex=0)
static int copyOut(T *vec, int firstLocalOffset, int numValues, const int *indices, double *values, bool isSolnVector=false, int vectorIndex=0)
static const char * typeName()