Surely someone has found the solutions to the hard sphere collisions (in n dimensions) of two bodies of mass m1 and m2, respectively--that is the resultant velocities (or momenta) of the two bodies after a hard sphere collision given →p1 and →p2. I have a solution (both for elastic and inelastic collisions), but I wonder whether or not it's correct.
FYI, here are my solutions for elastic, hard-sphere collisions:
→p1f=→p1+2(m1→p2−m2→p1)∘ˆrm1+m2ˆr,→p2f=→p2−2(m1→p2−m2→p1)∘ˆrm1+m2ˆr.
wher ˆr is in the direction of the "hard sphere" (i.e. the unit vector connecting the two centers of the two spheres). You can see that my formulation trivially conserved momentum--the question is whether or not it conserves energy as well.
If it helps, here is my full explanation (this is quite long and the link will expire in 30 days from 09/23/2014). For these purposes, you should skip to the section on n-dimensional cases (page 6). I wrote this as a reference to myself for doing physics simulations since I could not find any reference on hard sphere collisions (other than references setting up the problem which give no solutions).
Here is an abbreviated work on finding the final momenta from the elastic case:
Just as in the 1D case, we add and subtract the same momentum from each particle--except now we are adding and subtracting a vector: →p=pˆr, which means that |→p|=p (such that →p1f=→p1+pˆr and →p2f=→p2−pˆr). This gives the final energy as:
Ef=|→p1+pˆr|22m1+|→p2−pˆr|22m2
We now write the final energy in terms of the magnitude of p and the dot product between ˆr and →p1 and likewise for →p2. Note that if you choose the direction for →p to act a priori (like in the hard-sphere case), the dot products →p1⋅ˆr and →p2⋅ˆr will be known:
Ef=p21+p2+2pˆr∘→p12m1+p22+p2−2pˆr∘→p22m2
As usual the elastic case greatly simplifies:
p212m1+p222m1=p21+p2+2pˆr∘→p12m1+p22+p2−2pˆr∘→p22m2m1+m22m1m2p2−2m1→p2∘ˆr−m2→p1∘ˆr2m1m2p=0
This leads to a trivial solution of p=0 (no collision occurs) and:
m1+m22m1m2p−2m1→p2∘ˆr−m2→p1∘ˆr2m1m2=0p=2m1→p2∘ˆr−m2→p1∘ˆrm1+m2
Hence my solutions of:
→p1f=→p1+2(m1→p2−m2→p1)∘ˆrm1+m2ˆr,→p2f=→p2−2(m1→p2−m2→p1)∘ˆrm1+m2ˆr.
Finding the missing equations
Coordinate transforms just complicate the issue. The heart of the matter is that in n dimensions you have n degrees of freedom for the velocities of the COM of each sphere, and you only have n momentum conservation equations plus one energy conservation equation. That means you need an additional n-1 equations to solve the problem.
The additional equations come from the fact that if you assume a frictionless impact*, then the impulse/force imparted to each object must be normal to the surface. This gives a constraint on the direction of the impulse. Along with the magnitude, this direction would give us n degrees of freedom. So without it, it gives us n-1: exactly the number we need.
Solving for final velocities
Since we have spheres, the direction normal to the impact surface will be the vector that points from one COM to the other. Let's call this normal vector ˆj.
Now the velocities of balls A and B can be given as Va1 and Vb1 before the collision and Va2 and Vb2 after the collision.
Let's call the impulse that is imparted on ball A J. Then we have:
J∙ˆj=|J|
Va1+JMa=Va2
Vb1−JMb=Vb2
Then we can write the conservation of energy (multiplied by 2) as: MaVa1∙Va1+MbVb1∙Vb1=MaVa2∙Va2+MbVb2∙Vb2
Plugging in for our velocities after to collision gives:
MaVa1∙Va1+MbVb1∙Vb1=Ma(Va1+JMa)∙(Va1+JMa)+Mb(Vb1−JMb)∙(Vb1−JMb)
MaVa1∙Va1+MbVb1∙Vb1=MaVa1∙Va1+2J∙Va1+J∙JMa+MbVb1∙Vb1−2J∙Vb1+J∙JMb
0=2J∙Va1+J∙JMa−2J∙Vb1+J∙JMb
dividing by the magnitude of J yields:
0=2ˆj∙(Va1−Vb1)+|J|(1Ma+1Mb)
|J|=2ˆj∙(Va1−Vb1)1Ma+1Mb
Final Velocities
Va2=Va1+2ˆj∙(Va1−Vb1)Ma(1Ma+1Mb)
Vb2=Vb1+2ˆj∙(Vb1−Va1)Mb(1Ma+1Mb)
Finding Direction of Impulse
Let's call the vector pointing from the center of ball B to the center of ball A R. We know that before the impact R=R0+R′t where R0 is the difference in the balls' initial positions Pa−Pb and R′ is the difference in the balls' initial velocities Va1−Vb1.
At the moment of impact: ˆj=R|R|
and
|R|=ra+rb
Where
ra and
rb are the radii of the balls.
We can transform this second equation to find t:
R∙R=(ra+rb)2
R′∙R′t2+2R0∙R′t+R0∙R0−(ra+rb)2=0
t=−R0∙R′+√(R0∙R′)2−R′∙R′(R0∙R0−(ra+rb)2)R′∙R′
If this time is negative or imaginary, then the collision will not occur. Otherwise R at the moment of impact can be found by plugging in t:
R=R0−R′R0∙R′+√(R0∙R′)2−R′∙R′(R0∙R0−(ra+rb)2)R′∙R′
Wrap Up
So given initial positions Pa and Pb, initial velocities Va1 and Vb1, and ball radii ra and rb the final velocities Va2 and Vb2 can be found be following the following procedure:
Calculate the relative positions and velocities: R0=Pa−Pb
R′=Va1−Vb1
Calculate impact time: t=−R0∙R′+√(R0∙R′)2−R′∙R′(R0∙R0−(ra+rb)2)R′∙R′
If t is negative or imaginary, then no collision occurs, and the initial velocities are the final velocities. Otherwise:
Calculate the impulse direction: ˆj=R0+R′t|R0+R′t|
Calculate the impulse:
J=2ˆjˆj∙R′1Ma+1Mb
Calculate the final velocities:
Va2=Va1+JMa
Vb2=Vb1−JMb
*The collision must be frictionless if we're not considering moments of inertia as any friction would apply torque to the ball which would transfer energy and rotational inertia to the ball. The problem becomes slightly more complicated in that case as one has to assume how the friction will cause the balls to interact, which is not trivial as many of the simple assumptions conflict with energy conservation.