Simulating Gravitational Interactions in a Particle System

Click For Summary

Discussion Overview

The discussion revolves around simulating gravitational interactions in a particle system, specifically focusing on creating a model of the solar system. Participants explore the implementation of gravitational acceleration, the behavior of particles (representing planets), and the necessary computational methods for simulating their motion.

Discussion Character

  • Technical explanation
  • Exploratory
  • Homework-related

Main Points Raised

  • One participant outlines the initial steps for creating a solar system simulation, including the need for a system of particles and the implementation of gravitational acceleration.
  • Another participant emphasizes the importance of understanding that gravitational acceleration is not constant and is dependent on the distance between particles, referencing Newton's second law of motion.
  • A participant suggests that the original poster should define a method to measure the distance between particles to calculate the gravitational force acting on them.
  • Some participants express skepticism about the original poster's research efforts, suggesting that there are many existing resources available online.
  • There is a request for clarification on the specific issues the original poster is facing with their simulation.

Areas of Agreement / Disagreement

Participants do not reach a consensus on the original poster's understanding of gravitational interactions and the implementation of the simulation. There are differing views on the adequacy of the original poster's research and the specific challenges they are encountering.

Contextual Notes

Participants note the need for a clear understanding of gravitational forces and their dependence on relative distances, which may not have been fully addressed in the original poster's approach.

Jozefina Gramatikova
Messages
62
Reaction score
9
I have a project to make the solar system. I am trying to start from somwhere. On the notes it says that we need to start by creating a System of Particles
  • Two-body simulation (Circular motion)
  • Implement Gravitational acceleration
    Each particle (planet) could have its own field.
    • I.e. Each particle loops over all the other bodies to get the effect of all the other fields on it.
  • Extend to three body system
Need to create all accelerations in one step before updating the positions and velocities.
I have to use the Euler's method.

I have my code from last week where we had to simulate a projectile with constant acceleration.
Here is my code:
Python:
import numpy as np

class Particle:

position = np.array([0,0,0])
velocity = np.array([0,0,0])
acceleration = np.array([0,0,0])

def __init__(self, initialPosition, initialVelocity, initialAcceleration, Name, mass):
    self.position = initialPosition
    self.velocity = initialVelocity
    self.acceleration = initialAcceleration
    self.Name = Name
    self.mass = mass

def update(self, deltaT):
    self.position = self.position + self.velocity*deltaT
    self.velocity = self.velocity + self.acceleration*deltaT
def __repr__(self):
    return 'Particle: %10s, Mass: %.5e, Position: %s, Velocity: %s, Acceleration:%s'%
                   (self.Name,self.mass,self.position, self.velocity,self.acceleration)
Pls help!
 
Technology news on Phys.org
This is not a trivial request. Have you done some research with Google?

There are many examples of similar problems solved with Python that you could look at and learn how to write your own.
 
  • Like
Likes   Reactions: QuantumQuest
I have done my research. I am sorry, but couldn't find something like this.
 
What exactly do you need help with?
Is your sim not doing what it's supposed to?
 
OK, that is a good beginning for a particle. But a particle in a gravitational field, does not have a constant acceleration. The acceleration experienced by a particle of mass m under the influence of an external force F, is given by the 2nd law of Newton:
\vec{a} = \vec{F}/m
The force your particle will experience will be the gravitational one from the other particle 2, and will be the gravitational law:
\vec{F}= -\frac{G m_1 m_2}{|r_1-r_2|^2} \hat{r_{12}} = -\frac{G m_1 m_2}{|\vec{r_1} - \vec{r_2}|^3} (\vec{r}_1 - \vec{r}_2), (where \hat{r_{12}} the unit vector pointing from the particle 2>1).

and so you can see that the force depends on the relative distance between the particle 1 and 2 (and so it's not constant). Start from defining a way to measure the distance between your particles then. That distance can be used to determine the vector of acceleration per unit of time and the latter will affect the movement of your particles.
 

Similar threads

  • · Replies 10 ·
Replies
10
Views
11K
  • · Replies 2 ·
Replies
2
Views
4K
Replies
3
Views
2K
  • · Replies 7 ·
Replies
7
Views
4K
  • · Replies 19 ·
Replies
19
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
Replies
18
Views
3K
Replies
2
Views
4K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 15 ·
Replies
15
Views
3K