101 bool bJacBuilt =
false;
102 doublereal dStartTimeCPU, dEndTimeCPU, dJacobianCPU, dResidualCPU = 0., dLinSolveCPU;
118 bool forceJacobian(
false);
124 forceJacobian =
true;
138 dResidualCPU += dEndTimeCPU - dStartTimeCPU;
147 dErrFactor *= dErr/dOldErr;
152 if (!bParallel || MBDynComm.Get_rank() == 0)
157 silent_cout(
"\tIteration(" << iIterCnt <<
") " << dErr);
165 silent_cout(
" cond=");
184 silent_cout(std::endl);
194 if (iIterCnt >= std::abs(iMaxIter)) {
195 if (iMaxIter < 0 && dErrFactor < 1.) {
220 silent_cout(
"NewtonRaphsonSolver: "
221 "rebuilding matrix..."
239 dJacobianCPU = dEndTimeCPU - dStartTimeCPU;
246 if (!bParallel || MBDynComm.Get_rank() == 0)
251 silent_cout(
"Jacobian:" << std::endl
254 silent_cout(
"Jacobian: unchanged" << std::endl);
271 dLinSolveCPU = dEndTimeCPU - dStartTimeCPU;
289 dResidualCPU = dEndTimeCPU - dStartTimeCPU;
294 if (!bParallel || MBDynComm.Get_rank() == 0)
297 silent_cout(
"\t\tSolErr "
298 << dSolErr << std::endl);
virtual void Reset(void)=0
virtual VectorHandler * pResHdl(void) const =0
bool outputMatrixConditionNumber(void) const
virtual SolutionManager * pGetSolutionManager(void) const
void AddCond(doublereal dCond)
virtual void Jacobian(MatrixHandler *pJac) const =0
doublereal dGetCondMax() const
bool outputIters(void) const
#define MBDYN_EXCEPT_ARGS
bool outputBailout(void) const
MatrixHandler::Norm_t GetCondMatNorm(void) const
virtual bool MakeSolTest(Solver *pS, const VectorHandler &Vec, const doublereal &dTol, doublereal &dTest)
virtual void PrintResidual(const VectorHandler &Res, integer iIterCnt) const
virtual bool MakeResTest(Solver *pS, const NonlinearProblem *pNLP, const VectorHandler &Vec, const doublereal &dTol, doublereal &dTest, doublereal &dTestDiff)
double mbdyn_clock_time()
virtual void CheckTimeStepLimit(doublereal dErr, doublereal dErrDiff) const
doublereal dGetCondAvg() const
bool outputRes(void) const
virtual void Residual(VectorHandler *pRes) const =0
bool outputJac(void) const
doublereal dGetCondMin() const
virtual integer iGetSize(void) const =0
doublereal dGetTimeCPU(CPUTimeType eType) const
bool outputSolverConditionNumber(void) const
virtual doublereal ConditionNumber(enum Norm_t eNorm=NORM_1) const
int mbdyn_stop_at_end_of_iteration(void)
bool outputSol(void) const
virtual MatrixHandler * pMatHdl(void) const =0
integer iPerformedIterations
const NonlinearProblem * pPrevNLP
virtual void MatrReset(void)=0
void AddTimeCPU(doublereal dTime, CPUTimeType eType)
integer IterationBeforeAssembly
virtual void Solve(void)=0
#define ASSERT(expression)
virtual void MatrInitialize(void)
bool bGetConditionNumber(doublereal &dCond) const
virtual void PrintSolution(const VectorHandler &Sol, integer iIterCnt) const
bool outputCPUTime(void) const
virtual VectorHandler * pSolHdl(void) const =0
virtual void Update(const VectorHandler *pSol) const =0
bool outputSolverConditionStat(void) const