Save a nice simulation setting
authorLukáš Jiřiště <lukas.jiriste@datapartner.cz>
Fri, 5 Dec 2025 13:03:04 +0000 (14:03 +0100)
committerLukáš Jiřiště <lukas.jiriste@datapartner.cz>
Fri, 5 Dec 2025 13:03:04 +0000 (14:03 +0100)
animate_result.py
nbody.mo

index fc4956515343089e3f9e26870b52943b16e65a59..79d411e7a03e03ccec0d148e8a5299e00a738092 100755 (executable)
@@ -41,13 +41,13 @@ class MatAnimation:
     def show(self):
         self.animation = animation.FuncAnimation(
             self.fig, self.update, len(self.data["time"]),
-            interval = 100,
+            interval = 10,
             blit=False);
         plt.show();
 
     def update(self, frame):
         for line in self.lines:
-            from_frame = 0;
+            from_frame = frame - 100;
             to_frame = frame;
             line.line.set_data([
                 self.data[line.name_x][from_frame:to_frame],
@@ -77,7 +77,7 @@ def matAniFromFile(filename):
 
 
 ani = matAniFromFile(sys.argv[1]);
-for i in range(1,11):
+for i in range(1, 11):
     ani.plot(
         "p[" + str(i) + "].pos[1]",
         "p[" + str(i) + "].pos[2]",
index d7f81b1001fb23930dafb8cff0fe9d3eca9d9687..96d17000fb92f4f81d442f9a2c45519396372242 100644 (file)
--- a/nbody.mo
+++ b/nbody.mo
@@ -32,7 +32,7 @@ package nbody
        end unitvec;
 
        model System
-               parameter Integer       N = 4;
+               parameter Integer       N = 10;
                Planet                          p[N];
                RelPosition                     pos[N, N];
 
@@ -41,9 +41,9 @@ package nbody
                        p[i].pos[1] = sin(i);
                        p[i].pos[2] = cos(i);
                        p[i].pos[3] = sin(3 * i);
-                       p[i].speed[1] = cos(2 * i);
-                       p[i].speed[2] = sin(3 * i);
-                       p[i].speed[3] = cos(i);
+                       p[i].speed[1] = cos(2 * i) / 10;
+                       p[i].speed[2] = sin(3 * i) / 10;
+                       p[i].speed[3] = cos(i) / 10;
                end for;
 
        equation