9 #ifndef _fei_Vector_hpp_
10 #define _fei_Vector_hpp_
12 #include <fei_iosfwd.hpp>
13 #include <fei_SharedPtr.hpp>
14 #include <fei_Reducer.hpp>
68 int numVectors=1) = 0;
73 bool isSolutionVector,
74 int numVectors=1) = 0;
79 int numVectors=1) = 0;
84 bool isSolutionVector,
85 int numVectors=1) = 0;
94 virtual const char*
typeName()
const = 0;
102 virtual int sumIn(
int numValues,
const int* indices,
const double* values,
103 int vectorIndex=0) = 0;
108 virtual int copyIn(
int numValues,
const int* indices,
const double* values,
109 int vectorIndex=0) = 0;
116 virtual int copyOut(
int numValues,
const int* indices,
double* values,
117 int vectorIndex=0)
const = 0;
121 virtual int update(
double a,
160 int vectorIndex=0) = 0;
173 int vectorIndex=0) = 0;
175 virtual int copyInFieldDataLocalIDs(
int fieldID,
180 int vectorIndex=0) = 0;
192 int vectorIndex=0) = 0;
208 bool matrixMarketFormat=
true) = 0;
222 bool matrixMarketFormat=
true) = 0;
227 #ifndef _fei_ostream_ops_hpp_
228 #include <fei_ostream_ops.hpp>
231 #endif // _fei_Vector_hpp_
virtual int writeToFile(const char *filename, bool matrixMarketFormat=true)=0
virtual fei::SharedPtr< fei::VectorSpace > getVectorSpace() const =0
virtual int copyIn(int numValues, const int *indices, const double *values, int vectorIndex=0)=0
virtual int copyOutFieldData(int fieldID, int idType, int numIDs, const int *IDs, double *data, int vectorIndex=0)=0
virtual int gatherFromOverlap(bool accumulate=true)=0
virtual void setVectorSpace(fei::SharedPtr< fei::VectorSpace > vecSpace)=0
virtual int scatterToOverlap()=0
virtual int putScalar(double scalar)=0
virtual int update(double a, const fei::Vector *x, double b)=0
virtual int sumIn(int numValues, const int *indices, const double *values, int vectorIndex=0)=0
virtual int copyInFieldData(int fieldID, int idType, int numIDs, const int *IDs, const double *data, int vectorIndex=0)=0
virtual fei::SharedPtr< fei::Vector > createVector(fei::SharedPtr< fei::VectorSpace > vecSpace, int numVectors=1)=0
virtual const char * typeName() const =0
virtual void setCommSizes()=0
virtual int copyOut(int numValues, const int *indices, double *values, int vectorIndex=0) const =0
virtual int writeToStream(FEI_OSTREAM &ostrm, bool matrixMarketFormat=true)=0
virtual int sumInFieldData(int fieldID, int idType, int numIDs, const int *IDs, const double *data, int vectorIndex=0)=0