Astro simulation program problem - program bugs?

  • #1
Hello all,

for the past few weeks my friend and me have been working on a project involving simulation of orbital objects interaction. For example, one could see how everything looks if he/she entered all the details about the objects (that is: mass, position and velocity vector). The simulation is based on timesteps, that is, the system calculates new positions of objects after a timestep (default is one day). One can see how everything looks by "timestepping".

The problem is, the calculations are bogus!
Moreover, the formulas used MUST be right and this puts us into confusion:
the problem lies not in the program but in the principle used.

We pick each two objects, calculate the distance between them, the gravitational force between the objects, the average of speed gained ant the latter is added to objects' speed (obj.speed.x += accel.x * time_step / 2). After all that we move all the objects (like += obj.speed.x * time_step).
Everything is calculated in the SI.

We tested the system with the Earth and the Sun and it results in Earth going out of the orbit! So something's certainly wrong...

We would appreciate any help. If there is any interest, we can send you the sources (C++, GPL license) which compile great on Win32 and Linux (OpenGL is used for displaying 3D graphics).

Thanks in advance.
Last edited:
  • #2
aren't you supposed to sum all the forces and then divide by object mass and multiply that by delta_t and add that to speed?
  • #3
What difference does that make if we sum the forces or the delta_speed? :?
  • #4
I thought you were saying you averaging them
  • #5
Yes, that was a mistake, there should be accel * time / 2... Though it doesn't help :/.
Last edited:

Suggested for: Astro simulation program problem - program bugs?