9 #ifndef _fei_Matrix_Local_hpp_
10 #define _fei_Matrix_Local_hpp_
12 #include <fei_SharedPtr.hpp>
13 #include <fei_MatrixGraph.hpp>
14 #include <fei_Matrix.hpp>
15 #include <fei_SparseRowGraph.hpp>
25 virtual ~Matrix_Local();
39 int parameters(
int numParams,
const char*
const* paramStrings);
49 int getGlobalNumRows()
const;
53 int getLocalNumRows()
const;
60 int getRowLength(
int row,
int& length)
const;
63 int putScalar(
double scalar);
74 int copyOutRow(
int row,
int len,
double* coefs,
int* indices)
const;
88 int sumIn(
int numRows,
const int* rows,
89 int numCols,
const int* cols,
90 const double*
const* values,
105 int copyIn(
int numRows,
const int* rows,
106 int numCols,
const int* cols,
107 const double*
const* values,
125 int sumInFieldData(
int fieldID,
129 const double*
const* data,
149 int sumInFieldData(
int fieldID,
165 int sumIn(
int blockID,
int connectivityID,
166 const double*
const* values,
173 int globalAssemble();
187 int gatherFromOverlap(
bool accumulate =
true);
204 int writeToFile(
const char* filename,
205 bool matrixMarketFormat=
true);
220 bool matrixMarketFormat=
true);
224 bool usingBlockEntryStorage();
236 bool changedSinceMark();
238 const std::vector<int>& getRowNumbers()
const;
240 const std::vector<int>& getRowOffsets()
const;
242 const std::vector<int>& getColumnIndices()
const;
244 const std::vector<double>& getCoefs()
const;
247 int getRowIndex(
int rowNumber)
const;
249 int giveToMatrix(
int numRows,
const int* rows,
250 int numCols,
const int* cols,
251 const double*
const* values,
252 bool sumInto,
int format);
256 std::vector<double> coefs_;
258 std::vector<double> work_data1D_;
259 std::vector<const double*> work_data2D_;
void writeToStream(snl_fei::RaggedTable< MAP_TYPE, SET_TYPE > &table, FEI_OSTREAM &os, const char *lineprefix=NULL)
std::string typeName(const T &t)