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 [ ]: