89                 silent_cout(
"NonlinearSolverTest::MakeTest(" 
   90                                 << MBDynComm.Get_rank() << 
") " 
   91                                 "iNumLocDofs=" << iNumLocDofs << std::endl);
 
  102                         for (
int iCnt = 0; iCnt < iNumLocDofs; iCnt++) {
 
  103                                 TestOne(dTest, Vec, pLocDofs[iCnt]);
 
  119                         for (
int iCnt = 0; iCnt < iNumLocDofs; iCnt++) {
 
  120                                 TestOne(dTest, Vec, pLocDofs[iCnt]);
 
  135                 for (
int iCntp1 = 1; iCntp1 <= Size; iCntp1++) {
 
  139                         TestOne(dTest, Vec, iCntp1, dCoef);
 
  142                                 TestOne(*pTestDiff, Vec, iCntp1, dCoef);
 
  157         if (!std::isfinite(dRes)) {
 
  228         if (!std::isfinite(dRes)) {      
 
  257         if (dResNew > dResCurr) {
 
  286         return pScale->operator()(iIndex);
 
  297         doublereal d = Vec(iIndex) * (*pScale)(iIndex) * dCoef;
 
  354 : m_iFirstIndex(iFirstIndex), m_iLastIndex(iLastIndex), m_pTest(pTest)
 
  408         if (iFirstIndex <= 0) {
 
  409                 silent_cerr(
"NonlinearSolverTestRange: invalid iFirstIndex=" << iFirstIndex << std::endl);
 
  413         if (iLastIndex <= iFirstIndex) {
 
  414                 silent_cerr(
"NonlinearSolverTestRange: invalid iLastIndex=" << iLastIndex << 
" (iFirstIndex=" << iFirstIndex << 
")" << std::endl);
 
  425 :bHonorJacRequest(bHonorJacRequest),
 
  426  eScaleFlags(eScaleFlags),
 
  427  dScaleAlgebraic(dScaleAlgebraic)
 
  439 bParallel(MPI::Is_initialized()),
 
  445 dMinCond(std::numeric_limits<
doublereal>::max()),
 
  448 , ExtStepType(External::ERROR)  
 
  509 NonlinearSolver::SetExternal(
const External::ExtMessage Ty)
 
  515 NonlinearSolver::SendExternal(
void)
 
  517         switch (ExtStepType) {
 
  519                 External::SendNull();
 
  522         case (External::REGULAR):
 
  523                 External::SendRegular();
 
  526         case (External::CLOSE):
 
  527                 External::SendClose();
 
  530         case (External::ERROR):
 
  532                 External::SendError();
 
doublereal dTimeCPU[CPU_LAST_TYPE]
bool IsConverged(void) const 
integer * GetDofsList(DofType who) const 
virtual SolutionManager * pGetSolutionManager(void) const 
virtual void TestMerge(doublereal &dResCurr, const doublereal &dResNew) const 
NonlinearSolverTestRange(NonlinearSolverTest *pTest, integer iFirstIndex=-1, integer iLastIndex=-1)
void ComplExchIntRes(doublereal &d, const NonlinearSolverTest *t)
enum NonlinearSolverOptions::ScaleFlags eScaleFlags
virtual void SetScale(const VectorHandler *pScl)
virtual void TestOne(doublereal &dRes, const VectorHandler &Vec, const integer &iIndex, doublereal dCoef) const 
virtual ~NonlinearSolverTest(void)
virtual doublereal TestScale(const NonlinearSolverTest *pTest, doublereal &dAlgebraicEquations) const =0
#define MBDYN_EXCEPT_ARGS
#define DEBUGCOUTFNAME(fname)
doublereal dScaleAlgebraic
virtual doublereal MakeTest(Solver *pS, const integer &Size, const VectorHandler &Vec, bool bResidual=false, doublereal dScaleAlgEqu=1., doublereal *pTestDiff=0)
virtual bool MakeSolTest(Solver *pS, const VectorHandler &Vec, const doublereal &dTol, doublereal &dTest)
virtual bool MakeResTest(Solver *pS, const NonlinearProblem *pNLP, const VectorHandler &Vec, const doublereal &dTol, doublereal &dTest, doublereal &dTestDiff)
NonlinearSolverTest * m_pTest
virtual void TestOne(doublereal &dRes, const VectorHandler &Vec, const integer &iIndex, doublereal dCoef) const 
virtual doublereal MakeTest(Solver *pS, integer Size, const VectorHandler &Vec, bool bResidual=false, doublereal *pTestDiff=0)
virtual void TestOne(doublereal &dRes, const VectorHandler &Vec, const integer &iIndex, doublereal dCoef) const 
virtual void TestMerge(doublereal &dResCurr, const doublereal &dResNew) const 
void StartExchIntSol(void)
virtual integer iGetSize(void) const =0
GradientExpression< UnaryExpr< FuncFabs, Expr > > fabs(const GradientExpression< Expr > &u)
virtual ~NonlinearSolverTestRange(void)
virtual void TestMerge(doublereal &dResCurr, const doublereal &dResNew) const =0
bool bIsValid(const integer &iIndex) const 
virtual integer TotalAssembledJacobian(void)
virtual ~NonlinearSolver(void)
void SetRange(integer iFirstIndex, integer iLastIndex)
virtual const doublereal & dScaleCoef(const integer &iIndex) const 
virtual void TestMerge(doublereal &dResCurr, const doublereal &dResNew) const 
virtual const doublereal & dScaleCoef(const integer &iIndex) const 
NonlinearSolverTest * pSolTest
virtual void SetTest(NonlinearSolverTest *pr, NonlinearSolverTest *ps)
virtual doublereal TestPost(const doublereal &dRes) const 
virtual void TestOne(doublereal &dRes, const VectorHandler &Vec, const integer &iIndex, doublereal dCoef) const 
NonlinearSolver(const NonlinearSolverOptions &options)
virtual ~NonlinearSolverTestScale(void)
#define ASSERT(expression)
virtual const doublereal & dScaleCoef(const integer &iIndex) const 
GradientExpression< UnaryExpr< FuncSqrt, Expr > > sqrt(const GradientExpression< Expr > &u)
NonlinearSolverOptions(bool bHonorJacRequest=false, enum ScaleFlags eScaleFlags=SCALE_ALGEBRAIC_EQUATIONS_NO, doublereal dScaleAlgebraic=1.)
virtual void TestOne(doublereal &dRes, const VectorHandler &Vec, const integer &iIndex, doublereal dCoef) const 
virtual const doublereal & dScaleCoef(const integer &iIndex) const 
void StartExchIntRes(void)
integer HowManyDofs(DofType who) const 
virtual doublereal TestPost(const doublereal &dRes) const 
void ComplExchIntSol(doublereal &d, const NonlinearSolverTest *t)
virtual DataManager * pGetDataManager(void) const 
virtual void TestOne(doublereal &dRes, const VectorHandler &Vec, const integer &iIndex, doublereal dCoef) const =0
NonlinearSolverTestScale(const VectorHandler *pScl=0)
virtual void TestMerge(doublereal &dResCurr, const doublereal &dResNew) const 
virtual void TestMerge(doublereal &dResCurr, const doublereal &dResNew) const 
NonlinearSolverTest * pResTest
virtual const doublereal & dScaleCoef(const integer &iIndex) const 
virtual void TestOne(doublereal &dRes, const VectorHandler &Vec, const integer &iIndex, doublereal dCoef) const 
const VectorHandler * pScale
virtual doublereal TestPost(const doublereal &dRes) const 
virtual void TestMerge(doublereal &dResCurr, const doublereal &dResNew) const