Ejemplo n.º 1
0
    # Add a second box dynamically to the simulation
    if k == 100:
        ds = makeBox(pos=3.0, vel=0.0)
        bouncingBox.insertDynamicalSystem(ds)

    simulation.computeOneStep()

    dataPlot[k, 0] = simulation.nextTime()
    dataPlot[k, 1] = q[2]
    dataPlot[k, 2] = v[2]

    #if (broadphase.collisionWorld().getDispatcher().getNumManifolds() > 0):
    if (broadphase.statistics().new_interactions_created +
            broadphase.statistics().existing_interactions_processed) > 0:
        if bouncingBox.topology().\
          numberOfIndexSet() == 2:
            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()

#
# comparison with the reference file
#
from siconos.kernel import SimpleMatrix, getMatrix
from numpy.linalg import norm