Collision Model - The Supercomputing Challenge

Download Report

Transcript Collision Model - The Supercomputing Challenge

Interactions: Collision Model
Supercomputing Challenge Kickoff 2008
Bob Robey and Drew Einhorn
Collision Models

N-body simulations often need collision
models.
◦ These are short-range forces that occur
when two objects touch.

Typical attributes
◦
◦
◦
◦
Elasticity
Fracture
Rebound
Gaming--battles
Simple 1D Collision Model

In this model, the steel ball moves to the
right until it impacts the other steel balls
Governing Laws

Momentum conserved
◦ Sum (Mass*Vel) =Constant + sources

Mass conserved
◦ Fracture/Fragmenting/Aggregation

Energy conservation
Matlab Code

Update positions (P) using velocities (V)
P(:)=P(:)+delta*V(:);

Contact test
if (V(i) > 0 && P(i) > P(i+1)-1.9)

Transfer momentum
◦ (M- mass, c – elasticity)
V(i+1)=V(i)*M(i)*c/M(i+1);
V(i)=(1.0-c)*V(i);
(or V(i) = 0; and heat produced to conserve
energy)
Cycle logic

Putting together:
P(:)=P(:)+delta*V(:);
for i=1:size(P)-1
if (V(i) > 0 && P(i) > P(i+1)-1.9)
V(i+1)=V(i)*M(i)*c/M(i+1);
V(i)=0;
end
end
update_plot(H,P);
 Repeat as necessary in loop
Extensions
Balls with different masses
 Different elasticity – steel vs rubber
 Two dimensions – pool table

Sample Codes
Matlab code for 1D collision
 Brownian Motion -- Matlab
 Java code from open source physics for
2D interaction

◦ http://www.compadre.org/OSP/document/Ser
veFile.cfm?ID=7572&DocID=592

Python Example