In [1]:
from __future__ import division, print_function
from ivisual import *
from math import *
In [7]:
scene=canvas(title="Binary Stars")
G=6.7e-11
m1=2e30
m2=2*m1
r1=vector(1.5e11,0,0)
r2=-m1/m2*r1
v1=vector(0,3.3e4,0)
v2=-m1/m2*v1
star1=sphere(radius=100e8, pos=r1, color=color.red, make_trail=True, retain=400)
star2=sphere(radius=star1.radius, pos=r2, color=color.yellow, make_trail=True, retain=400)
t=0
dt=1e5
while t<1000*dt:
rate(100)
r=r1-r2
rmag=mag(r)
rhat=norm(r)
Fgrav=G*m1*m2/rmag**2
F1=-Fgrav*rhat
r1dotdot=F1/m1
v1=v1+r1dotdot*dt
r1=r1+v1*dt
F2=-F1
r2dotdot=F2/m2
v2=v2+r2dotdot*dt
r2=r2+v2*dt
t=t+dt
star1.pos=r1
star2.pos=r2
In [ ]: