Conservation of Linear Momentum+ Elastic and Inelastic collision

Click For Summary

Discussion Overview

The discussion revolves around the implementation of collision mechanics in a physics engine for a game, focusing on the conservation of linear momentum and the differentiation between elastic and inelastic collisions. Participants explore the mathematical foundations and practical applications of these concepts, seeking to refine collision responses based on the coefficient of restitution and impulse calculations.

Discussion Character

  • Exploratory
  • Technical explanation
  • Conceptual clarification
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • One participant describes their current collision handling method and expresses a desire to improve it by calculating impulses rather than simply repositioning objects.
  • Another participant notes that total momentum is conserved in collisions, while total kinetic energy is only conserved in perfectly elastic collisions, which may be reduced in other types of collisions.
  • A participant questions how momentum conservation can coexist with a reduction in velocity for both objects during a collision, suggesting that if one object slows down, the other must speed up to maintain total momentum.
  • Clarification is sought regarding the treatment of momentum in multiple dimensions, specifically how to resolve velocity into orthogonal components for collision calculations.
  • There is confusion about the relationship between impulse and momentum, particularly regarding whether the total momentum can be treated as an impulse and how to determine its direction.
  • Participants discuss the potential for incorporating a coefficient of restitution to better model real-world collisions, suggesting that it could be similar to the coefficient of friction.

Areas of Agreement / Disagreement

Participants express uncertainty and seek clarification on various aspects of momentum and impulse, indicating that multiple competing views remain on how to effectively model collisions in a physics engine. No consensus is reached on the best approach to incorporate elasticity or calculate impulses.

Contextual Notes

Participants highlight limitations in their understanding of impulse and momentum, particularly in multi-dimensional scenarios. There is also a lack of consensus on how to apply the coefficient of restitution and how it interacts with impulse calculations.

Nanako
Messages
39
Reaction score
0
hi everyone. I'm working on a physics engine as part of a game I'm making, a hobby project. Up until this point I've implemented inter object collisions in a rather quick and dirty manner. Whenever something moves into something else, it is simply teleported back out to the edge. This implementation worked for a while, but amongst other problems, it causes anything not currently moving to be an immovable object, which is not good.

Since i already have support for forces, impulses, and friction, I've decided it's time to re-examine my collisions and make a better model for it.

I believe the formula i need for elastic collision is here: http://en.wikipedia.org/wiki/Momentum#Conservation_of_linear_momentum

the big pair of formulae, just under where it says "In one dimension" in bold letters. however, i need a little bit of help rearranging it. Those formulae give the final velocities of the object as an output. But i'd like to not go that far. The output I'd like is the Impulse to apply to both objects, in Ns (Newton-seconds). As i understand, both objects in a collision will receive the same impulse. I want this so that i can do other (game related) things with it before applying it. If anyone could help with adjusting the formula to give me that, it'd be helpful.


The second issue i have though, is that the formula only covers perfectly elastic collisions. And there's a separate formula for perfectly inelastic collisions. This seems inherently wrong to me, as nothing in nature is completely one or the other.

What i'd like to do is to figure out a way to incorporate the coefficient of restitution into things (the measure of elasticity between the objects). Considering the problem, i believe it will work similar to the coefficient of friction, in that either component having low elasticity will drive the coefficient towards zero. For example, a snowball thrown at a window will smush against it rather than bouncing off, even though one of the two is highly elastic, because the other is not. This is mostly just logical thought on my part.

I already have a simple formula for calculating the friction coefficient that i would probably reuse (sqrt(ab)). Assuming i keep within the bounds of a and b always being between 0 and 1, that would ensure my coefficient is always likewise.

Once i have a coefficient of restitution, how to incorporate it is the next step. I really don't know here, but logic tells me that something like multiplying the impulse by the coefficient, would work well.

what i ideally want to do is to be able to assign individual elasticity values to objects within my engine, work out a coefficient between them. Work out a collision impulse for the collision based on the object's masses and velocities, and figure out a way to combine the impulse and coefficient, before applying the impulse to the objects. I believe this should give me a more well rounded collision simulation, but i need some assistance to fill in the blanks.

I'm interested in any thoughts and assistance anyone can provide on these two subjects
 
Physics news on Phys.org
bump. can anyone assist ?
 
You have two things:
- Total momentum vector : always conserved 100%
- Total kinetic energy : conserved 100% only in perfectly elastic collisions. Otherwise reduced depending on the coefficient of restitution the mass ratio and the frame of reference.
 
Hello everyone ^^ I got sidetracked from this for quite a while working out other collision related things. Now it's time to pick up and actually start it. Unfortunately i still need lots of help.

So then, i'll start with a few questions that's on my mind.


1.
If momentum equals mass*velocity, and momentum in a closed system is always conserved, then how is it possible for a collision to result in reducing the velocity of both objects? If one object is slowed by a collision, isn't it necessary that the other gains velocity to keep the total momentum the same?



2.
I'm also looking for some clarification of this quote:

In multiple dimensions

In the case of objects colliding in more than one dimension, as in oblique collisions, the velocity is resolved into orthogonal components with one component perpendicular to the plane of collision and the other component or components in the plane of collision. The velocity components in the plane of collision remain unchanged, while the velocity perpendicular to the plane of collision is calculated in the same way as the one-dimensional case.

For example, in a two-dimensional collision, the momenta can be resolved into x and y components. We can then calculate each component separately, and combine them to produce a vector result. The magnitude of this vector is the final momentum of the isolated system.

I already have my velocities stored as a two-part vector (this is 2D. x and y) but I'm having trouble understanding how this relates. Would i calculate the x momentum from the x velocity, and do all the calculations on that value, then repeat it for the y? or is it more complex than that ?


3.
I'm now unsure if i really understand impulse very well. From a quick glance here: http://en.wikipedia.org/wiki/Newton-second
It appears that the Newton-second is the unit of momentum, as well as impulse. This is a link didn't quite make mentally. Does that then mean that i can apply the total momentum of the system, as an impulse, to achieve the desired change in velocity? (of course, one object will receive the impulse*-1). Or would it perhaps be half of the total system momentum ?

although even then, I'm sure this would only give me the magnitude of the impulse value. I still need to directionalise it. This I'm not sure about, any thoughts are appreciated.

An impulse value is my ultimate aim for this exercise, as i want to be able to do game-y things to it before actually applying it.
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 11 ·
Replies
11
Views
4K
  • · Replies 25 ·
Replies
25
Views
4K
  • · Replies 35 ·
2
Replies
35
Views
4K
  • · Replies 10 ·
Replies
10
Views
5K
  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K