9 #ifndef _fei_VectorReducer_hpp_
10 #define _fei_VectorReducer_hpp_
12 #include <fei_iosfwd.hpp>
13 #include <fei_VectorSpace.hpp>
14 #include <fei_Reducer.hpp>
15 #include <fei_Vector.hpp>
18 #define fei_file "fei_VectorReducer.hpp"
20 #include <fei_ErrMacros.hpp>
30 bool isSolutionVector=
false);
33 virtual ~VectorReducer();
42 const char*
typeName()
const {
return(target_->typeName()); }
56 int scatterToOverlap();
58 void setCommSizes() { target_->setCommSizes(); }
63 int gatherFromOverlap(
bool accumulate =
true);
66 int putScalar(
double scalar);
71 int sumIn(
int numValues,
const int* indices,
const double* values,
77 int copyIn(
int numValues,
const int* indices,
const double* values,
83 {
return(target_->getVectorSpace()); }
88 { target_->setVectorSpace( vecSpace ); }
96 int sumInFieldData(
int fieldID,
109 int copyInFieldData(
int fieldID,
116 int copyInFieldDataLocalIDs(
int fieldID,
129 int copyOutFieldData(
int fieldID,
136 int writeToFile(
const char* filename,
137 bool matrixMarketFormat=
true);
140 bool matrixMarketFormat=
true);
142 int copyOut(
int numValues,
145 int vectorIndex=0)
const;
150 int copyOut_FE(
int nodeNumber,
int dofOffset,
double& value);
152 int giveToUnderlyingVector(
int numValues,
154 const double* values,
158 int sumIntoFEVector(
int blockID,
161 const int* nodeNumbers,
162 const int* numIndicesPerNode,
163 const double* values);
175 #endif // _fei_VectorReducer_hpp_
void writeToStream(snl_fei::RaggedTable< MAP_TYPE, SET_TYPE > &table, FEI_OSTREAM &os, const char *lineprefix=NULL)
std::string typeName(const T &t)