43 #include <meschach/sparse2.h>
60 MeschachVectorHandler(
integer iSize = 0);
61 virtual ~MeschachVectorHandler(
void);
65 virtual void IsValid(
void)
const;
69 inline VEC* pGetMeschachVEC(
void)
const;
74 virtual void Reset(
void);
87 MeschachVectorHandler::pdGetVec(
void)
const
96 MeschachVectorHandler::pGetMeschachVEC(
void)
const
105 MeschachVectorHandler::iGetSize(
void)
const
119 pdVecm1[iRow] = dCoef;
129 pdVecm1[iRow] += dCoef;
139 pdVecm1[iRow] -= dCoef;
144 MeschachVectorHandler::dGetCoef(
integer iRow)
const
149 return pdVecm1[iRow];
153 MeschachVectorHandler::operator () (
integer iRow)
const
158 return pdVecm1[iRow];
162 MeschachVectorHandler::operator () (
integer iRow)
167 return pdVecm1[iRow];
183 ~MeschachSparseMatrixHandler(
void);
192 void IsValid(
void)
const;
211 inline SPMAT* pGetMAT(
void)
const;
216 MeschachSparseMatrixHandler::iGetNumRows(
void)
const
225 MeschachSparseMatrixHandler::iGetNumCols(
void)
const
242 sp_set_val(
mat, --iRow, --iCol, dCoef);
258 sp_inc_val(
mat, --iRow, --iCol, dCoef);
274 sp_dec_val(
mat, --iRow, --iCol, dCoef);
282 MeschachSparseMatrixHandler::dGetCoef(
integer iRow,
integer iCol)
const
287 return ((
doublereal&)dDmy = sp_get_val(
mat, --iRow, --iCol));
291 MeschachSparseMatrixHandler::pGetMAT(
void)
const
300 operator << (std::ostream& out,
const MeschachSparseMatrixHandler& MH);
310 MeschachVectorHandler* prhs;
312 MeschachSparseMatrixHandler* pmh;
314 enum { RESET, FACTORED } fStatus;
321 MeschachSparseSolutionManager(
integer iSize,
324 ~MeschachSparseSolutionManager(
void);
327 void IsValid(
void)
const;
335 silent_cerr(
"Sorry Meschach is not available as local parallel solver. "
336 <<
"Aborting" << std::endl);
342 silent_cerr(
"Sorry Meschach is not available as local parallel solver. "
343 <<
"Aborting" << std::endl);
virtual void Reset(void)=0
virtual VectorHandler * pResHdl(void) const =0
virtual integer iGetNumCols(void) const =0
virtual const doublereal & dGetCoef(integer iRow, integer iCol) const
virtual void IncCoef(integer iRow, integer iCol, const doublereal &dCoef)
#define MBDYN_EXCEPT_ARGS
virtual doublereal * pdGetVec(void) const =0
doublereal * pdSetSolVec(doublereal *pd)
virtual const doublereal & operator()(integer iRow) const =0
virtual void IncCoef(integer iRow, const doublereal &dCoef)=0
virtual void DecCoef(integer iRow, integer iCol, const doublereal &dCoef)
virtual const doublereal & dGetCoef(integer iRow) const =0
virtual integer iGetSize(void) const =0
virtual void Reset(void)=0
virtual void DecCoef(integer iRow, const doublereal &dCoef)=0
virtual MatrixHandler * pMatHdl(void) const =0
std::ostream & operator<<(std::ostream &out, const FullMatrixHandler &m)
doublereal * pdSetResVec(doublereal *pd)
static doublereal mat[5][5]
virtual void MatrReset(void)=0
virtual void PutCoef(integer iRow, integer iCol, const doublereal &dCoef)
virtual void Solve(void)=0
virtual void PutCoef(integer iRow, const doublereal &dCoef)=0
static const doublereal a
virtual VectorHandler * pSolHdl(void) const =0
virtual void Resize(integer iNewSize)=0
virtual integer iGetNumRows(void) const =0