irfpy.util.collision
¶
Handles collision.
Note
YF has old module handling ratherford scattering. I haven’t ported it, but can be done on request.
- irfpy.util.collision.binary_collision(mass1, pos1, vel1, mass2, pos2, vel2, collision_length)[source]¶
Calculate the binary collision
- Parameters:
mass1 – Mass of the particle 1
pos1 – Postion vector of the particle 1
vel1 – Velocity vector of the particle 1
mass2 – Mass of the particle 2
pos2 – Postion vector of the particle 2
vel2 – Velocity vector of the particle 2
- irfpy.util.collision.binary_collision_stationary_vector1(mass1, pos1, vel1, mass2, collision_length)[source]¶
Slightly generalized version of
binary_collision_stationary()
Calculate the final velocity after the binary collision.
This function accepts the position and velocity vectors of particle 1. Particle 2 should be origin, and stationary. If the negative relative velocity (particles 1 and 2 separates as time goes), a collision will not happen.
Other conditions are hold as
binary_collision_stationary()
. (e.g. Particle 2 should be at origin, and stationary.)
- irfpy.util.collision.binary_collision_stationary(mass1, speed1, mass2, impact_parameter, collision_length)[source]¶
Cancluate a binary collision in one-particle stationary system.
- Parameters:
mass1 – Mass of moving particle, m1
speed1 – Speed of the moving particle, v1. Positive.
mass2 – Mass of stationary particle, m2
impact_parameter – The impact parameter, d. Positive.
collision_length – The radius of the cross section, or r1+r2 where r1 is the radius of the moving particke and r2 is the radius of the stationary particle.
- Returns:
(V1, W1, V2, W2)
A binary collision is simulated here. Situation is that a flying (incoming) particle 1 has mass1 with speed 1 (positive y component) in the (negative x, positive y) quadrant. The stationary particle 2 at the origin will be collided. The returned is the final velocity (x, y components). If the impact paramter is more than the collision_length, the particle will not collide.
Theory
A binary collision is characterized by the two particles with masses, m1 and m2.
Let’s be in a system where the second particle with m2 is in rest at the origin. This system change be chosen without losing the generality.
First particle (with m1) flies from infinite -x, toward the origin, with a speed of v1 along x axis. Just by rotation, we can select a frame that the first particle is in the (-x, +y) quadrant, center in z=0 plane, with v1>0 with only vx component.
Then, after the collision, the motion of two particles should be confined in x-y plane since no force acting in the z direction. Assume the resulting velocity vector as (V1, W1) for particle m1, and (V2, W2) for particle m2.
Momentum conservation will give you
and
Energy conservation will give you
The force only act on the collision, so that the particle m2 should have the following geometric relation of velocity.
Solving above four equations to derive the V1, W1, V2 and W2. For simplicity, we use the following notations.
The solutions are
Todo
To check the above formulation is correct. In particular the fourth equation should be checked. How to? Probably we may need another formulation using center of gravity system…