Transcript Document

N-body introduction
Supercomputing challenge
STI
Kickoff
Code examples
• Mechanics: random balls
• Biology/evolution: flocking
• Game of tag
Intro to bodies interactions
via planetary orbits
• The attraction between two bodies is given by
F= g*m1*m2/r2
• Where F is force, g is the gravitational “constant”
[aka fudge factor], m’s are masses for bodies one
and two and r is the distance between them.
r the distance between two bodies
Point 2
• Using the
Pythagorean
theorem we
can find the
distance
between two
points
y
Point 1
x
a 2 + b2 = c 2
Hence,
x2 + y2 = r2
Trigonometry review
•
•
•
•
cos  = x
sin  = y
tan  = y/x
atan y/x = 
y

x
mmm vectors….
y
Mass 2
‘out there’
F

Mass 1 at
‘center’
• We need to separate
the x and y directions
of the force.
•  is the angle
x • So F, the force arrow
has an x and y part.
• Fx = (cos ) * F
• Fy = (sin ) * F
Put it all together
Lets ignore m2 [its very very very small], then
F= g*m1*m2/r2, becomes
F = g*m/r2
But, r2 = x2 + y2, so
F = g*m/(x2 + y2)
But, Fx = (cos )*F, so
Fx = (cos )*g*m/(x2 + y2)
Similarly,
Fy = (sin )*g*m/(x2 + y2)
How does the computer know
what's what?
• x is x and y is y
• But the
computer does
not know what
 is.
• atan y/x = 
y

x
Using atan
Remember,
And,
y/x = 
Fx = (cos )*g*m/(x2 + y2)
Fy = (sin )*g*m/(x2 + y2)
So,
Fx = (cos [atan y/x])*g*m/(x2 + y2)
And,
Fy = (sin [atan y/x])*g*m/(x2 + y2)
What does force do?
• If you hit a tether ball then you are the force and
the ball then has a velocity as it flies through the
air.
• Hence we need velocity terms for our bodies: V
• Vx = Vx + Fx
• Vy = Vy + Fy
• The velocity gets added to it self just like with a
tether ball: the new velocity adds its old velocity
to the new force of hitting it again.
Next step translate into code