Physics Stack Exchange is a question and answer site for active researchers, academics and students of physics. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am making a simulation of $N$-Particles in a cartesian plane and need help with understanding the basics.

At anytime, in my particle system, I will have $N$ number of particles. I am treating the particles as bodies with some radius $r \in (0, 20]$ and giving them properties constrained in a $X \times Y$ unit squared area of a finite plane. Following are the properties a particle can have:

  • Mass (Initially supplied)
  • Radius (Initially supplied)
  • Position (Initially supplied)
  • Velocity (Initially supplied)
  • Accelaration (when one body attracts another, dynamically generated by the simulator)

Given all this info, I want to make the particle system autonomous, meaning at $t=0$, $N$ particles are laid out on the plane in random locations. At $t>0$, all these particles interact with each other because of the force they exert on each other. I need help understating their fundamental behaviors, especially when can one particle rotate around each other (just like moon does around the earth)? I do understand this concept a little, but what kind of physical and mathematical concepts can help me with this? If possible can you point me to the right web resource pertaining to this matter so I can read about it?

share|cite|improve this question

If they're point masses, you can take out radius as that is already assumed to be 0 :)

This problem has been studied, and has the creative name of "the n body problem"... you can read about it at Wikipedia: (noting of course that Wikipedia is not a proper reference for scholarly or real-world engineering work, but it makes for a good read of the topic- a starting point).

Essentially I think the fundamental tools for this problem are vector calculus, classical mechanics (Newton's Laws) and numerical methods (it turns out its non-trivial to get good results out of a simulation like the one you describe, and it gets its own field of study!).

The issue of objects potentially orbiting each other should not require special treatment if you build the right mathematical model and implement it well... it should just "happen" as a natural consequence of the system you've set up.

The problem, on the surface, sounds simple and maybe even easy... but it's actually going to be difficult and likely very educational. Don't get discouraged when you find difficulties, that's how you learn.

edit: implicit in all of this is the assumption that you're only going to account for gravitational interactions (i.e. no electromagnetism, no nuclear forces). Also, you'll probably want to start out assuming all objects exist in a vacuum (as opposed to a fluid medium such as the atmosphere, as aerodynamics would add a whole bunch more complications).

share|cite|improve this answer
Please read the edited question again, I am not treating the bodies as point masses any more.Yes the exact thing that I am thinking is that the system should just run on it on once it's started. It would also be very helpful to know about the underlying mathematics behind this. – hyde Nov 25 '12 at 18:19
Giving your particles a radius (I assume they're spheres?) opens up some questions regarding collisions. Are these particles deformable? Will they collide only perfectly elastically? Once you've figured out how you want to model collisions, I think having radius =/= zero just changes how far apart the particles need to be in order to collide. – Paul Nov 25 '12 at 21:08
Also, it occurred to me that you'll need to define the boundaries of the system if it's a finite plane your particles will live in. Do the boundaries have mass? How do the particles interact with the boundaries (if massless, I think you'll just have to account for the nature of the collisions). – Paul Nov 25 '12 at 21:09
I would really like to put these comments on your question... but I can't find an 'add comment' button. Am I blind or have you selected some sort of option preventing this? I'm a little new to posting on StackExchange... – Paul Nov 25 '12 at 21:11
The simulation is on a 2D Cartesian plane so the particles are disks. The particles will collide inelastically and become a single particle after the collision. Since I am running the simulation inside a browser, the boundary of universe is (window width * window height). When a particle's X and Y position is greater than or equal to the browser window width and height respectively, I just set their velocity vector to point in the opposite direction. I have not added any restrictions on posting comments to this question. – hyde Nov 26 '12 at 0:25

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.