9 #ifndef _fei_VectorReducer_hpp_
10 #define _fei_VectorReducer_hpp_
18 #define fei_file "fei_VectorReducer.hpp"
30 bool isSolutionVector=
false);
71 int sumIn(
int numValues,
const int* indices,
const double* values,
77 int copyIn(
int numValues,
const int* indices,
const double* values,
137 bool matrixMarketFormat=
true);
140 bool matrixMarketFormat=
true);
145 int vectorIndex=0)
const;
150 int copyOut_FE(
int nodeNumber,
int dofOffset,
double& value);
154 const double* values,
161 const int* nodeNumbers,
162 const int* numIndicesPerNode,
163 const double* values);
175 #endif // _fei_VectorReducer_hpp_
int copyOut(int numValues, const int *indices, double *values, int vectorIndex=0) const
virtual fei::SharedPtr< fei::VectorSpace > getVectorSpace() const =0
int copyInFieldData(int fieldID, int idType, int numIDs, const int *IDs, const double *data, int vectorIndex=0)
int update(double a, const fei::Vector *x, double b)
fei::SharedPtr< fei::Reducer > reducer_
int copyOutFieldData(int fieldID, int idType, int numIDs, const int *IDs, double *data, int vectorIndex=0)
VectorReducer(fei::SharedPtr< fei::Reducer > reducer, fei::SharedPtr< fei::Vector > target, bool isSolutionVector=false)
int sumIn(int numValues, const int *indices, const double *values, int vectorIndex=0)
virtual void setVectorSpace(fei::SharedPtr< fei::VectorSpace > vecSpace)=0
int writeToFile(const char *filename, bool matrixMarketFormat=true)
const char * typeName() const
int putScalar(double scalar)
fei::SharedPtr< fei::Vector > getTargetVector()
void setVectorSpace(fei::SharedPtr< fei::VectorSpace > vecSpace)
fei::SharedPtr< fei::Vector > target_
int copyInFieldDataLocalIDs(int fieldID, int idType, int numIDs, const int *localIDs, const double *data, int vectorIndex=0)
virtual const char * typeName() const =0
int gatherFromOverlap(bool accumulate=true)
int writeToStream(FEI_OSTREAM &ostrm, bool matrixMarketFormat=true)
fei::SharedPtr< fei::VectorSpace > getVectorSpace() const
int copyIn(int numValues, const int *indices, const double *values, int vectorIndex=0)
int giveToUnderlyingVector(int numValues, const int *indices, const double *values, bool sumInto=true, int vectorIndex=0)
virtual void setCommSizes()=0
int sumIntoFEVector(int blockID, int connOffset, int numNodes, const int *nodeNumbers, const int *numIndicesPerNode, const double *values)
int sumInFieldData(int fieldID, int idType, int numIDs, const int *IDs, const double *data, int vectorIndex=0)
int copyOut_FE(int nodeNumber, int dofOffset, double &value)