How to handle simultaneous particles collision in simulation?

Click For Summary

Discussion Overview

The discussion centers on the challenges of simulating simultaneous collisions between particles, specifically in a one-dimensional elastic collision scenario involving three balls. Participants explore the implications of the order in which collisions are resolved and seek to identify a correct method for handling such situations in simulations.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested

Main Points Raised

  • One participant describes a scenario with three balls colliding simultaneously and notes that the order of collision resolution affects the final outcome, which seems counterintuitive.
  • The same participant provides a detailed breakdown of two different orders of collision resolution, demonstrating that they yield different final states for the balls.
  • Another participant questions the validity of the final configuration presented, suggesting that it does not account for subsequent collisions that would occur in the next time step.
  • There is a suggestion that the common approach of resolving collisions one at a time and updating the simulation may not be sufficient for accurately handling simultaneous collisions.
  • Participants express uncertainty about the correct method to handle simultaneous collisions and seek alternative strategies.

Areas of Agreement / Disagreement

Participants do not reach a consensus on the correct method for handling simultaneous collisions. There are competing views on the implications of collision order and the effectiveness of the current simulation approach.

Contextual Notes

Participants highlight the complexity of collision detection and resolution in simulations, particularly when multiple collisions occur at the same time. The discussion reveals limitations in the current methodology and the need for further exploration of alternative approaches.

Who May Find This Useful

This discussion may be of interest to those involved in physics simulations, game development, or computational modeling, particularly in contexts where particle interactions and collision dynamics are relevant.

nsNas
Messages
2
Reaction score
0
Suppose there are 3 balls colliding at the same time. I find that the order in which I resolve collisions makes a difference in the final result, which ofcourse makes no sense.

To explain and keep things simple, consider 3 balls in 1D, all same mass, elastic collision. The numbers at the top are the speeds and the arrows is the direction. Assume they are currently all touching each others, i.e. in collision

Code:
 -->2   -->1 <---3
   O     O       O
   A     B       C

This shows ball A hitting ball B from the back and ball B and C are colliding face on.

Now if we resolve collision A with B first, followed by resolving collision B with C, but using the new speed of B, this should give the same result if we instead have resolved collision of B with C, followed by resolving A with B (using the new speed of B).

But it does not.

first case: A with B, followed by B with C

A with B gives

Code:
 -->1   -->2
   O     O  
   A     B

and B with C gives (but using new B speed of 2 above, not the original speed of 1)

Code:
 <--3   -->2
   O     O  
   B     C

Hence the final result is

Code:
-->1   <--3  ---->2
   O     O       O
   A     B       C

second case: B with C, followed by A with B

B with C gives

Code:
 <--3   --->1
   O     O  
   B     C
A with B (but using new speed of B of 3 above, not original 1)

Code:
<--3    -->2
   O     O  
   A     B

Hence final result is

Code:
 <--3  -->2   ---->1
   O     O       O
   A     B       C

You can see the final state is different.

What Am I doing wrong? and more importantly, what is the correct method to handle this?

For simulation with many balls and also collision with walls, this case is very possible. (for example, ball hitting a wall and being hit by another ball at the same time, would give same problem as above, the order gives different results).

Currently I use a loop to iterate over all objects and resolve collisions between each 2 at a time. Hence the order I use is arbitrary (order is just the index of the ball in an array).
 
Physics news on Phys.org
You're on the right track, but the problem is, you have not worked it through. Let me show this for one of the cases.

nsNas said:
first case: A with B, followed by B with C

A with B gives

Code:
 -->1   -->2
   O     O  
   A     B

and B with C gives (but using new B speed of 2 above, not the original speed of 1)

Code:
 <--3   -->2
   O     O  
   B     C

Hence the final result is

Code:
-->1   <--3  ---->2
   O     O       O
   A     B       C

Is that the final configuration? Can A really go to the right with speed 1 when B is going to the left with speed 3?
 
Is that the final configuration? Can A really go to the right with speed 1 when B is going to the left with speed 3?

Of course not, but this will cause collision between A and B in the next time step.

What else do you suggest doing? In all collision detections I've seen, one goes over each particle at a time, resolves its collisions with all others, and then update the simulation one time step (i.e. move all particles using their new speeds), and repeat.

How else should one handle this otherwise?
 
nsNas said:
Of course not, but this will cause collision between A and B in the next time step.

What else do you suggest doing? In all collision detections I've seen, one goes over each particle at a time, resolves its collisions with all others, and then update the simulation one time step (i.e. move all particles using their new speeds), and repeat.

How else should one handle this otherwise?

I think this is the right way to handle it. But do the next time step! Your original question said your "final result" is different in the two cases. The final result is when ALL collisions that could happen, have happened.
 

Similar threads

  • · Replies 20 ·
Replies
20
Views
2K
  • · Replies 8 ·
Replies
8
Views
925
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 35 ·
2
Replies
35
Views
4K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 16 ·
Replies
16
Views
3K
  • · Replies 12 ·
Replies
12
Views
2K
  • · Replies 80 ·
3
Replies
80
Views
13K
  • · Replies 30 ·
2
Replies
30
Views
2K