9 #ifndef _fei_BlockLinearProblemManager_hpp_
10 #define _fei_BlockLinearProblemManager_hpp_
12 #include <fei_macros.hpp>
13 #include <fei_SharedPtr.hpp>
53 const std::vector<int>& dofPerOwnedID,
54 const std::vector<int>& ghostIDs,
55 const std::vector<int>& dofPerGhostID)=0;
111 int numColIDs,
int numCoefs,
124 int colID,
int numColDof,
125 const double*
const* values,
134 int colID,
int colDofOffset,
176 const double* values,
179 int vectorIndex=0)=0;
188 int vectorIndex=0) = 0;
196 int vectorIndex=0) = 0;
225 #endif // _fei_BlockLinearProblemManager_hpp_
virtual int getRowPointLength(int ownedID)=0
virtual int getRowBlockLength(int ownedID)=0
virtual void setMatrixGraph(fei::SharedPtr< fei::SparseRowGraph > matrixGraph)=0
virtual ~BlockLinearProblemManager()
virtual void setRowDistribution(const std::vector< int > &ownedIDs, const std::vector< int > &dofPerOwnedID, const std::vector< int > &ghostIDs, const std::vector< int > &dofPerGhostID)=0
virtual int insertMatrixValues(int rowID, int numRowDof, int colID, int numColDof, const double *const *values, bool sum_into)=0
virtual int globalAssemble()=0
virtual int solve(const fei::ParameterSet ¶meters)=0
virtual int copyOutMatrixRow(int ownedID, int dofOffset, int numColIDs, int numCoefs, int *colIDs, int *dofPerColID, double *coefs)
virtual int getNumOwnedIDs()=0
virtual double * getLocalVectorValuesPtr(bool soln_vector, int vectorIndex=0)=0
virtual void setMatrixValues(double scalar)=0
virtual int insertVectorValues(int ID, int numDof, const double *values, bool sum_into, bool soln_vector, int vectorIndex=0)=0
virtual int copyOutVectorValues(int ID, int numDof, double *values, bool soln_vector, int vectorIndex=0)=0
virtual void setVectorValues(double scalar, bool soln_vector)=0