9 #ifndef _fei_Matrix_hpp_
10 #define _fei_Matrix_hpp_
12 #include "fei_iosfwd.hpp"
13 #include "fei_SharedPtr.hpp"
14 #include "fei_MatrixGraph.hpp"
74 virtual int getRowLength(
int row,
int& length)
const = 0;
88 virtual int copyOutRow(
int row,
int len,
double* coefs,
int* indices)
const = 0;
102 virtual int sumIn(
int numRows,
const int* rows,
103 int numCols,
const int* cols,
104 const double*
const* values,
119 virtual int copyIn(
int numRows,
const int* rows,
120 int numCols,
const int* cols,
121 const double*
const* values,
143 const double*
const* data,
179 virtual int sumIn(
int blockID,
int connectivityID,
180 const double*
const* values,
224 bool matrixMarketFormat=
true) = 0;
239 bool matrixMarketFormat=
true) = 0;
257 virtual double* getBeginPointer() {
return NULL; }
258 virtual int getOffset(
int row,
int col) {
return -1; }
263 #ifndef _fei_ostream_ops_hpp_
264 #include <fei_ostream_ops.hpp>
267 #endif // _fei_Matrix_hpp_
virtual int multiply(fei::Vector *x, fei::Vector *y)=0
virtual const char * typeName()=0
virtual bool usingBlockEntryStorage()=0
virtual void setMatrixGraph(fei::SharedPtr< fei::MatrixGraph > matrixGraph)=0
virtual void markState()=0
virtual void setCommSizes()=0
virtual int writeToFile(const char *filename, bool matrixMarketFormat=true)=0
virtual int sumIn(int numRows, const int *rows, int numCols, const int *cols, const double *const *values, int format=0)=0
virtual int getRowLength(int row, int &length) const =0
virtual int sumInFieldData(int fieldID, int idType, int rowID, int colID, const double *const *data, int format=0)=0
virtual fei::SharedPtr< fei::MatrixGraph > getMatrixGraph() const =0
virtual bool changedSinceMark()=0
virtual int getGlobalNumRows() const =0
virtual int globalAssemble()=0
virtual int copyIn(int numRows, const int *rows, int numCols, const int *cols, const double *const *values, int format=0)=0
virtual fei::SharedPtr< fei::Matrix > createMatrix(fei::SharedPtr< fei::MatrixGraph > matrixGraph)=0
virtual int gatherFromOverlap(bool accumulate=true)=0
virtual int putScalar(double scalar)=0
virtual int getLocalNumRows() const =0
virtual int parameters(const fei::ParameterSet ¶mset)=0
virtual int copyOutRow(int row, int len, double *coefs, int *indices) const =0
virtual int writeToStream(FEI_OSTREAM &ostrm, bool matrixMarketFormat=true)=0