Advertisement
Guest User

Untitled

a guest
Oct 24th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. from visual import*
  2. from visual.graph import*
  3.  
  4. bolt_pos = vector(-.1, -1, 0) #position of bolt relative to rod center
  5. G = 6.67e-11
  6. rod_mass = 1244.491
  7. L = 10
  8. rod_radius = 0.05
  9. bites = 10 #number of dms you want
  10. bolt_mass = 0.5
  11. bolt_radius = 0.2
  12. M = 10
  13.  
  14. #graphics
  15. vscale=.1
  16. bolt_object = sphere(pos=bolt_pos, radius=bolt_radius, color=color.blue)
  17. rod_object = cylinder(pos=(-L,0,0), axis=(2*L,0,0), radius=rod_radius, color=color.red)
  18. force_object = arrow(pos=bolt_pos, axis=(0,0,0), shaftwidth=0.1)
  19.  
  20. #initials
  21. dx = (2*L)/bites
  22. dm = (rod_mass/(bites))
  23.  
  24. #inital force to integrate from
  25. force = vector(0,0,0)
  26.  
  27.  
  28. #for m in range(-M,M): #comment out loop that drew all the arrows
  29. #bolt_pos = vector(2*m, 8, 0)
  30. initial_vel = vector(0.00001,0,-0.00001)
  31. #point = sphere(pos=bolt_pos, radius=0.2, color=color.magenta, make_trail=true)
  32. #force_object = arrow(pos=(bolt_pos), axis=(0,0,0), shaftwidth=0.15, color=color.cyan)
  33.  
  34. momentum = initial_vel*bolt_mass
  35. bolt_object.pos = bolt_pos
  36. t = 0
  37. dt = 100
  38.  
  39.  
  40. #force = vector(0,0,0)
  41. while t < 200000:
  42. rate(1000000)
  43. t = t + dt
  44. force = vector(0,0,0)
  45. for n in range (0, bites):
  46. x = vector((-L + (dx/2) + (n*dx)), 0, 0)
  47. # print x
  48. r = bolt_object.pos - x
  49.  
  50. dF = -G*((bolt_mass * dm)/(mag2(r))) * norm(r)
  51. force = force + dF
  52.  
  53. momentum = momentum + force*dt
  54. bolt_object.pos = bolt_object.pos + (momentum/bolt_mass)*dt
  55.  
  56. # force_object.pos = bolt_object.pos
  57. # force_object.axis = vscale * force/G *4
  58. print force
  59. #print momentum
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement