def restitutionCoefficient(): cor = balls2d.cor() ncollisions = balls2d.numCollisions() assert cor.shape == (ncollisions,) for col_idx in range( 0, ncollisions ): indices = balls2d.collisionIndices( col_idx ) assert indices[0] <= 2 assert indices[1] == -1 if indices[0] == 0: cor[col_idx] = 0.0 elif indices[0] == 1: cor[col_idx] = 0.5 else: cor[col_idx] = 1.0
def frictionCoefficient(): grain_floor_mu = 0.6 grain_grain_mu = 0.2 coeffs = balls2d.mu() ncollisions = balls2d.numCollisions() for col_idx in range( 0, ncollisions ): col_type = balls2d.collisionType( col_idx ) if col_type == 'ball_ball': coeffs[col_idx] = grain_grain_mu elif col_type == 'teleported_ball_ball': coeffs[col_idx] = grain_grain_mu elif col_type == 'static_plane_constraint': coeffs[col_idx] = grain_floor_mu else: print 'Unexpected constraint type encountered:', col_type sys.exit( 1 )