dataPlot[0, 1] = q[2] dataPlot[0, 2] = v[2] k = 1 # time loop while(simulation.hasNextEvent()): # Add a second box dynamically to the simulation if k == 100: broadphase.addDynamicObject(makeBox(pos=3), simulation) broadphase.buildInteractions(bouncingBox.currentTime()) simulation.computeOneStep() dataPlot[k, 0] = simulation.nextTime() dataPlot[k, 1] = q[2] dataPlot[k, 2] = v[2] if (broadphase.collisionWorld().getDispatcher().getNumManifolds() > 0): if bouncingBox.nonSmoothDynamicalSystem().topology().\ numberOfIndexSet() > 1: index1 = sk.interactions(simulation.indexSet(1)) if (len(index1) == 4): dataPlot[k, 3] = norm(index1[0].lambda_(1)) + \ norm(index1[1].lambda_(1)) + norm(index1[2].lambda_(1)) + \ norm(index1[3].lambda_(1)) k += 1 simulation.nextStep()