SP::SiconosVector Simulation::lambda(unsigned int level, unsigned int coor) { // return input(level) (ie with lambda[level]) for all Interactions. // assert(level>=0); DEBUG_BEGIN("Simulation::input(unsigned int level, unsigned int coor)\n"); DEBUG_PRINTF("with level = %i and coor = %i \n", level,coor); InteractionsGraph::VIterator ui, uiend; SP::Interaction inter; SP::InteractionsGraph indexSet0 = _nsds->topology()->indexSet0(); SP::SiconosVector lambda (new SiconosVector (_nsds->topology()->indexSet0()->size() )); int i=0; for (std11::tie(ui, uiend) = indexSet0->vertices(); ui != uiend; ++ui) { inter = indexSet0->bundle(*ui); assert(inter->lowerLevelForOutput() <= level); assert(inter->upperLevelForOutput() >= level); lambda->setValue(i,inter->lambda(level)->getValue(coor)); i++; } DEBUG_END("Simulation::input(unsigned int level, unsigned int coor)\n"); return lambda; }
void Simulation::updateOutput(unsigned int level) { // To compute output(level) (ie with y[level]) for all Interactions. // assert(level>=0); DEBUG_PRINTF("Simulation::updateOutput(unsigned int level) starts for level = %i\n", level); double time = model()->currentTime(); InteractionsGraph::VIterator ui, uiend; SP::Interaction inter; SP::InteractionsGraph indexSet0 = model()->nonSmoothDynamicalSystem()->topology()->indexSet0(); for (std11::tie(ui, uiend) = indexSet0->vertices(); ui != uiend; ++ui) { inter = indexSet0->bundle(*ui); assert(inter->lowerLevelForOutput() <= level); assert(inter->upperLevelForOutput() >= level); inter->computeOutput(time, indexSet0->properties(*ui), level); } DEBUG_PRINTF("Simulation::updateOutput(unsigned int level) ends for level = %i\n", level); }