about summary refs log tree commit diff
path: root/src/python/spiral
diff options
context:
space:
mode:
Diffstat (limited to 'src/python/spiral')
-rwxr-xr-xsrc/python/spiral/average_force.py109
-rwxr-xr-xsrc/python/spiral/cells.py62
2 files changed, 171 insertions, 0 deletions
diff --git a/src/python/spiral/average_force.py b/src/python/spiral/average_force.py
new file mode 100755
index 0000000..a3a3146
--- /dev/null
+++ b/src/python/spiral/average_force.py
@@ -0,0 +1,109 @@
+#!/usr/bin/env python
+
+# import stuff
+import sys
+import matplotlib.pyplot as plt
+import numpy as np
+import time
+from subprocess import call
+
+# define from where to get the star data
+path = "stars/" + sys.argv[1] + ".csv"
+
+# define a list to store the coordinates
+listx = []
+listy = []
+listz = []
+list_force = []
+
+# define constants
+G = 6.674e-11
+
+def glaw(m1, m2, a1, b1):
+    a = m1 * m2
+    b = np.power(a1 - b1, 2)
+    c = np.sqrt(b)
+    d = a / c
+    e = G * d
+    return e
+
+# start the timer
+start = time.time()
+
+# open the data file
+with open(path) as f:
+
+    # read the individial lines from the data file
+    data = f.readlines()
+
+    # for each line
+    for i in range(0, len(data)):
+
+        # parse the first value in each line
+        v_i_x = data[i].split(", ")[0]
+        v_i_y = data[i].split(", ")[1]
+        v_i_z = data[i].split(", ")[2]
+
+        print("{:20}{:20}{:20}".format("v_i_x", "v_j_x", "v_f_x"))
+        # print it
+        # print("{:20}{:20}{:20}".format(v_i_x, v_i_y, v_i_z))
+
+        # append it to lista for further usage
+        listx.append(v_i_x)
+        listy.append(v_i_y)
+        listy.append(v_i_z)
+
+        for j in range(0, len(data)):
+            v_j_x = data[j].split(", ")[0].strip("\n")
+            v_j_y = data[j].split(", ")[1].strip("\n")
+            v_j_z = data[j].split(", ")[2].strip("\n")
+
+            if(v_j_x != v_i_x):
+                pv_f_x = glaw(int(1), int(2), float(v_i_x), float(v_j_x))
+                print("{:20}{:20}{:20}".format(v_i_x.strip("\n"), v_j_x, v_f_x))
+
+            if(v_j_y != v_i_y):
+                v_f_y = glaw(int(1), int(2), float(v_i_y), float(v_j_y))
+                print("{:20}{:20}{:20}".format(v_i_y.strip("\n"), v_j_y, v_f_y))
+
+            if(v_j_z != v_i_z):
+                v_f_z = glaw(int(1), int(2), float(v_i_z), float(v_j_z))
+                print("{:20}{:20}{:20}".format(v_i_z.strip("\n"), v_j_z, v_f_z))
+
+
+        print("---\n")
+
+print("")
+end = time.time()
+whole_time = end - start
+out = ">> Finished calculating the forces in " + str(whole_time) + " seconds\n"
+print(out)
+
+try:
+    call(["telegram-send", "--pre", str(out) ])
+except Exception:
+    print("Failed to send telegram message D:")
+
+
+# # initialize some variables
+# sum_a = 0
+# avarage_a = 0
+#
+# # calculate the average value
+# for i in range(0, 40):
+#     sum_a += float(lista[i])
+#
+# # calculate the average
+# avarage_a = sum_a / 40
+#
+# # print the average
+# print("avarage_a: " + str(avarage_a))
+
+# sort lista and store the result in listb
+# listb = sorted(lista)
+
+# plot listb using a normal line, red color and round markers
+# plt.plot(lista, "-ro")
+
+# dispaly the plot
+# plt.show()
diff --git a/src/python/spiral/cells.py b/src/python/spiral/cells.py
new file mode 100755
index 0000000..3304296
--- /dev/null
+++ b/src/python/spiral/cells.py
@@ -0,0 +1,62 @@
+#!/usr/bin/env python
+
+import numpy as np
+from numpy import genfromtxt
+import json
+import bpy
+import time
+import sys
+
+num = 100                   # number of stars that should be generated
+range_max = 10              # define the range in which the coordinates should be generated
+axes = 3                    # define the number of axes
+data = "galaxy"             # define the name of the galaxy
+path = "cell_stars/1.csv"   # define the path where the galaxy should be saved
+
+# generate random coordinates
+# rand_a = (np.random.rand(num, axes) * 2 * rand_range) - rand_range
+
+
+for i in range(0, num, 1):
+
+    # generate the random star-coordinates
+    x = np.random.uniform(-range_max, range_max, size=1)
+    y = np.random.uniform(-range_max, range_max, size=1)
+    z = np.random.uniform(-range_max, range_max, size=1)
+
+    with open(path, "a") as star_data:
+        x_a = str(float(x)) + ", "
+        y_a = str(float(y)) + ", "
+        z_a = str(float(z))
+
+        star_data.write(x_a + y_a + z_a + "\n")
+
+for data in path:
+    verts = genfromtxt(path, delimiter=', ', skip_header=0, usecols = (0, 1, 2))
+
+    # create mesh and object
+    mesh = bpy.data.meshes.new(data)
+    object = bpy.data.objects.new(data,mesh)
+
+    # set mesh location
+    object.location = bpy.context.scene.cursor_location
+    bpy.context.scene.objects.link(object)
+
+    # create mesh from python data
+    mesh.from_pydata(verts,[],[])
+    mesh.update(calc_edges=True)
+
+    bpy.ops.object.select_all(action='SELECT')
+
+# parsed_json = json.loads(stars)
+# print(parsed_json["s1"])
+#
+#
+# # The Vector array contains vectors describing forces acting inside the cells.
+# cell_num = 3            # number of cells
+#
+# vector_arr = np.zeros((cell_num, cell_num, cell_num))
+#
+# vector_arr[0][1][2] = Vector(1, 2, 3)
+#
+# print(vector_arr[0])