void D1MinusLinearOSI::_NSLEffectOnFreeOutput::visit(const NewtonImpactNSL& nslaw) { double e = nslaw.e(); Index subCoord(4); subCoord[0] = 0; subCoord[1] = _inter->nonSmoothLaw()->size(); subCoord[2] = 0; subCoord[3] = subCoord[1]; SiconosVector & osnsp_rhs = *(*_interProp.workVectors)[D1MinusLinearOSI::OSNSP_RHS]; subscal(e, osnsp_rhs, osnsp_rhs, subCoord, false); }
void D1MinusLinearOSI::_NSLEffectOnFreeOutput::visit(const NewtonImpactNSL& nslaw) { double e = nslaw.e(); Index subCoord(4); subCoord[0] = 0; subCoord[1] = _inter->nonSmoothLaw()->size(); subCoord[2] = 0; subCoord[3] = subCoord[1]; // subscal(e, *(_inter->y_k(_osnsp->inputOutputLevel())), *(_inter->yForNSsolver()), subCoord, false); subscal(e, *(_inter->yForNSsolver()), *(_inter->yForNSsolver()), subCoord, false); }
void visit(const NewtonImpactNSL& nslaw) { double e; e = nslaw.e(); Index subCoord(4); subCoord[0] = 0; subCoord[1] = _inter->nonSmoothLaw()->size(); subCoord[2] = 0; subCoord[3] = subCoord[1]; subscal(e, *_inter->yOld(_osnsp->inputOutputLevel()), *(_inter->yForNSsolver()), subCoord, false); // q = q + e * q }
void visit(const NewtonImpactNSL& nslaw) { double e; e = nslaw.e(); Index subCoord(4); subCoord[0] = 0; subCoord[1] = _inter->nonSmoothLaw()->size(); subCoord[2] = 0; subCoord[3] = subCoord[1]; // Only the normal part is multiplied by e SP::SiconosVector y_k_1 ; y_k_1 = _inter->yMemory(_osnsp->inputOutputLevel())->getSiconosVector(1); // std::cout << "y_k_1 " << std::endl; // y_k_1->display(); subscal(e, *y_k_1, *(_inter->yForNSsolver()), subCoord, false); }
void visit(const NewtonImpactNSL& nslaw) { double e; e = nslaw.e(); Index subCoord(4); subCoord[0] = 0; subCoord[1] = _inter->nonSmoothLaw()->size(); subCoord[2] = 0; subCoord[3] = subCoord[1]; // Only the normal part is multiplied by e const SiconosVector& y_k_1( _inter->yMemory(_osnsp->inputOutputLevel()).getSiconosVector(1)); DEBUG_PRINTF("_osnsp->inputOutputLevel() = %i \n ",_osnsp->inputOutputLevel() ); DEBUG_EXPR(y_k_1.display());; SiconosVector & osnsp_rhs = *(*_interProp.workVectors)[SchatzmanPaoliOSI::OSNSP_RHS]; subscal(e, y_k_1, osnsp_rhs, subCoord, false); }