9 #ifndef _fei_Reducer_hpp_
10 #define _fei_Reducer_hpp_
52 int numCols,
const int* cols,
67 int numCols,
const int* cols,
68 const double*
const* values,
99 const int* globalIndices,
100 const double* values,
107 const int* globalIndices,
124 bool global_gather=
true);
178 #endif // _fei_Reducer_hpp_
Reducer(fei::SharedPtr< FillableMat > globalSlaveDependencyMatrix, fei::SharedPtr< CSVec > g_vector, MPI_Comm comm)
std::vector< const double * > work_2D_
std::vector< double > work_1D_
int highestGlobalSlaveEqn_
int lowestGlobalSlaveEqn_
int addMatrixValues(int numRows, const int *rows, int numCols, const int *cols, const double *const *values, bool sum_into, fei::Matrix &feimat, int format)
std::vector< int > reverse_
void assembleReducedMatrix(fei::Matrix &matrix)
void assembleReducedVector(bool soln_vector, fei::Vector &feivec)
int translateToReducedEqn(int unreducedEqn) const
int firstLocalReducedEqn_
void getSlaveMasterEqns(int slaveEqn, std::vector< int > &masterEqns)
void addGraphEntries(fei::SharedPtr< fei::SparseRowGraph > matrixGraph)
int copyOutVectorValues(int numValues, const int *globalIndices, double *values, bool soln_vector, int vectorIndex, fei::Vector &feivec)
void expand_work_arrays(int size)
void addGraphIndices(int numRows, const int *rows, int numCols, const int *cols, fei::Graph &graph)
std::vector< int > localReducedEqns_
unsigned rhs_vec_counter_
void setLocalUnreducedEqns(const std::vector< int > &localUnreducedEqns)
int translateFromReducedEqn(int reduced_eqn) const
int addVectorValues(int numValues, const int *globalIndices, const double *values, bool sum_into, bool soln_vector, int vectorIndex, fei::Vector &feivec)
std::vector< int > & getLocalReducedEqns()
void assembleReducedGraph(fei::Graph *graph, bool global_gather=true)
void addSymmetricGraphIndices(int numIndices, const int *indices, bool diagonal, fei::Graph &graph)
std::vector< int > nonslaves_
bool isSlaveCol(int unreducedEqn) const
bool isSlaveEqn(int unreducedEqn) const
std::vector< int > localUnreducedEqns_