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);
void assembleReducedGraph(fei::Graph *graph, bool global_gather=true)
unsigned rhs_vec_counter_
std::vector< int > localReducedEqns_
void getSlaveMasterEqns(int slaveEqn, std::vector< int > &masterEqns)
int translateToReducedEqn(int unreducedEqn) const
std::vector< int > nonslaves_
void expand_work_arrays(int size)
int highestGlobalSlaveEqn_
bool isSlaveEqn(int unreducedEqn) const
int addVectorValues(int numValues, const int *globalIndices, const double *values, bool sum_into, bool soln_vector, int vectorIndex, fei::Vector &feivec)
std::vector< const double * > work_2D_
void assembleReducedVector(bool soln_vector, fei::Vector &feivec)
int copyOutVectorValues(int numValues, const int *globalIndices, double *values, bool soln_vector, int vectorIndex, fei::Vector &feivec)
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 > localUnreducedEqns_
int lowestGlobalSlaveEqn_
void addGraphEntries(fei::SharedPtr< fei::SparseRowGraph > matrixGraph)
void setLocalUnreducedEqns(const std::vector< int > &localUnreducedEqns)
void addGraphIndices(int numRows, const int *rows, int numCols, const int *cols, fei::Graph &graph)
int firstLocalReducedEqn_
std::vector< int > & getLocalReducedEqns()
void addSymmetricGraphIndices(int numIndices, const int *indices, bool diagonal, fei::Graph &graph)
void assembleReducedMatrix(fei::Matrix &matrix)
int translateFromReducedEqn(int reduced_eqn) const
std::vector< int > reverse_
bool isSlaveCol(int unreducedEqn) const
std::vector< double > work_1D_