47 HarwellSparseSolutionManager::HarwellSparseSolutionManager(
integer iSize,
58 ASSERT((dPivotFactor >= 0.0) && (dPivotFactor <= 1.0));
61 if (iWorkSpaceSize == 0) {
62 iWorkSpaceSize = iSize*iSize;
66 dVec.resize(iMatSize,0.);
72 iRow.reserve(iWorkSpaceSize);
73 iCol.reserve(iWorkSpaceSize);
74 dMat.reserve(iWorkSpaceSize);
77 HarwellSolver(iMatSize, iWorkSpaceSize,
79 &dMat, &(dVec[0]), dPivotFactor));
88 HarwellSparseSolutionManager::~HarwellSparseSolutionManager(
void)
106 HarwellSparseSolutionManager::IsValid(
void)
const
111 #ifdef DEBUG_MEMMANAGER
116 ASSERT((pVH->IsValid(), 1));
117 ASSERT((pLU->IsValid(), 1));
123 HarwellSparseSolutionManager::PacVec(
void)
129 ASSERT(fHasBeenReset == 1);
131 pLU->iNonZeroes = MH.MakeIndexForm(dMat, iRow, iCol, iColStart, 1);
136 HarwellSparseSolutionManager::MatrReset()
144 fHasBeenReset =
flag(1);
149 HarwellSparseSolutionManager::Solve(
void)
155 if (fHasBeenReset == 1) {
157 fHasBeenReset =
flag(0);
158 if (!pLU->bLUFactor()) {
#define MBDYN_EXCEPT_ARGS
#define ASSERT(expression)
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
#define defaultMemoryManager