[kernel] too much update_inverse_mass that renders the scheme wrong
@@ -41,7 +41,7 @@ using namespace RELATION;
double D1MinusLinearOSI::computeResiduHalfExplicitVelocityLevel()
{
- DEBUG_PRINT("\n D1MinusLinearOSI::computeResiduHalfExplicitVelocityLevel(), starts\n");
+ DEBUG_BEGIN("D1MinusLinearOSI::computeResiduHalfExplicitVelocityLevel(), starts\n");
double t = _simulation->nextTime(); // end of the time step
double told = _simulation->startingTime(); // beginning of the time step
@@ -243,8 +243,8 @@ double D1MinusLinearOSI::computeResiduHalfExplicitVelocityLevel()
*p2 /= h;
if(d->inverseMass())
{
- d->update_inverse_mass();
d->inverseMass()->PLUForwardBackwardInPlace(*dummy);
+ DEBUG_EXPR(d->inverseMass()->display(););
}
DEBUG_EXPR(vFree.display());
DEBUG_EXPR(dummy->display());
@@ -679,7 +679,7 @@ double D1MinusLinearOSI::computeResiduHalfExplicitVelocityLevel()
} // No impact
- DEBUG_PRINT("\n D1MinusLinearOSI::computeResiduHalfExplicitVelocityLevel(), ends\n");
+ DEBUG_END("D1MinusLinearOSI::computeResiduHalfExplicitVelocityLevel(), ends\n");
return 0.; // there is no Newton iteration and the residuum is assumed to vanish
}
@@ -710,7 +710,8 @@ void D1MinusLinearOSI::computeFreeOutputHalfExplicitVelocityLevel(InteractionsGr
SP::SiconosMatrix C; // Jacobian of Relation with respect to degree of freedom
SP::BlockVector Xfree; // free degree of freedom
SiconosVector& yForNSsolver = *inter->yForNSsolver();
-
+ DEBUG_PRINT("yForNSsolver before\n");
+ DEBUG_EXPR(yForNSsolver.display(););
// define Xfree for velocity and acceleration level
if(((*allOSNS)[SICONOS_OSNSP_TS_VELOCITY]).get() == osnsp)
{
@@ -773,7 +774,7 @@ void D1MinusLinearOSI::computeFreeOutputHalfExplicitVelocityLevel(InteractionsGr
coord[5] = C->size(1);
subprod(*C, *Xfree, yForNSsolver, coord, true);
}
-
+ DEBUG_EXPR(yForNSsolver.display(););
/* explicit time dependence -> partial time derivative has to be added */
if(relationSubType == RheonomousR)
{
