From f26a5f2caf18cdcfb5712ba08f2df7a50b133792 Mon Sep 17 00:00:00 2001 From: coyote Date: Thu, 9 Dec 2021 17:02:56 +0100 Subject: [PATCH] Starting gravity 1 body around a body. Not yet finished. Added todo list for project. Started 2 body problem also. --- gravity_simulation/gravity.py | 25 +++++++++++++++++++++++++ gravity_simulation/gravity1body.py | 20 ++++++++++++++++++++ gravity_simulation/todo.md | 16 ++++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 gravity_simulation/gravity.py create mode 100644 gravity_simulation/gravity1body.py create mode 100644 gravity_simulation/todo.md diff --git a/gravity_simulation/gravity.py b/gravity_simulation/gravity.py new file mode 100644 index 0000000..a43a3a3 --- /dev/null +++ b/gravity_simulation/gravity.py @@ -0,0 +1,25 @@ +import numpy as np +import matplotlib.pyplot as plt + +time = 0 + + +class Body: + + def __init__(self, position, mass=1): + # Initial parameters + self.mass = mass + self.position = np.array(position) + + +def plot_t(positions): + fig, ax = plt.subplots() + ax.scatter(positions[:, 0], positions[:, 1]) + plt.show() + + +if __name__ == "__main__": + body1 = Body([1, 1]) + body2 = Body([-1, -1]) + positions = np.vstack([body1.position, body2.position]) + plot_t(positions) diff --git a/gravity_simulation/gravity1body.py b/gravity_simulation/gravity1body.py new file mode 100644 index 0000000..12031e0 --- /dev/null +++ b/gravity_simulation/gravity1body.py @@ -0,0 +1,20 @@ +import numpy as np +import matplotlib.pyplot as plt + +time = 0 +# Initial conditions +mass_b1 = 1 +position + + +def plot_t(positions): + fig, ax = plt.subplots() + ax.scatter(positions[:, 0], positions[:, 1]) + plt.show() + + +if __name__ == "__main__": + body1 = Body([1, 1]) + body2 = Body([-1, -1]) + positions = np.vstack([body1.position, body2.position]) + plot_t(positions) \ No newline at end of file diff --git a/gravity_simulation/todo.md b/gravity_simulation/todo.md new file mode 100644 index 0000000..faf8c0c --- /dev/null +++ b/gravity_simulation/todo.md @@ -0,0 +1,16 @@ +# Lista con los objetivos del proyecto +## Descripcion +El objetivo del proyecto es de hacer un programa de simulacion gravitacional de N-cuerpos en 2D y 3D. + +## TO-DO +- [ ] Simulacion en 2D + - [ ] Simulacion de 2 cuerpos + - [ ] Visualizacion de cuerpos (matplotlib) + - [ ] Simulacion de 3 cuerpos + - [ ] Simulacion de 10 cuerpos + - [ ] Simulacion de 100 cuerpos + - [ ] Simulacion de 1000 cuerpos + - [ ] Simulacion de 1 000 000 cuerpos (possible con mi cpu?) +- [ ] Simulacion en 3D +- [ ] GUI para elegir 2D/3D, numero de cuerpos +- [ ] Agregar configuraciones conocidas (sistema solar, sol tierra y luna) \ No newline at end of file