Advertisement
Coolbboy83

VillamCalc

Apr 19th, 2024
605
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.95 KB | Source Code | 0 0
  1. import math
  2. import numpy as np
  3.  
  4. # variables
  5.  
  6. M = 100
  7. Lv = 1.5
  8. h = 0.15
  9. Iv = 200000
  10. Delta_l = [0, -(Lv / M), 0]
  11.  
  12. nur = 1
  13. nu0 = 4 * math.pi * 10 ** (-7)
  14.  
  15. K = 2
  16. N1 = 100
  17. N2 = 100
  18.  
  19. Ig1 = Iv / 2
  20. Ig2 = Iv / 2
  21.  
  22.  
  23. # vectors
  24.  
  25. rK1 = [0, 0, (-h)]
  26. rK2 = [0, 0, (-h)]
  27.  
  28. rV1 = [0.26, -0.16, 0]
  29. rV2 = [-0.26, -0.16, 0]
  30.  
  31. #
  32.  
  33. Delta_r1 = [(rV1[i] - rK1[i]) / N1 for i in range(len(rV1))]
  34. Delta_r2 = [(rV2[j] - rK2[j]) / N2 for j in range(len(rV2))]
  35.  
  36. #print("Delta_r1 result: ", Delta_r1)
  37. #print("Delta_r2 result: ", Delta_r2)
  38.  
  39.  
  40. # calculations
  41.  
  42. vectors_rpX_j = [[0, Lv / M * (j - 0.5), (-h)] for j in range(1, M + 1)]
  43.  
  44. vectors_r1X_i = [ [rK1[j] + (i - 0.5) / N1 * (rV1[j] - rK1[j]) for j in range(len(rK1))] for i in range(1, N1 + 1) ]
  45.  
  46. vectors_r2X_i = [ [rK2[j] + (i - 0.5) / N2 * (rV2[j] - rK2[j]) for j in range(len(rK2))] for i in range(1, N2 + 1) ]
  47.  
  48. #
  49.  
  50. scalar = (nur * nu0 / (4 * math.pi) * Ig1)
  51.  
  52. Bp_res_part = [scalar * x for x in Delta_r1]
  53.  
  54. scalar_2 = (nur * nu0 / (4 * math.pi) * Ig2)
  55.  
  56. Bp_2 = [scalar_2 * x for x in Delta_r2]
  57.  
  58.  
  59. #print(result_vectors)
  60. vektor = np.array([1, 2, 3])
  61. vektor_abs_result = np.linalg.norm(vektor)
  62.  
  63. #print("A [1, 2, 3] vektor abszolút értéke:", vektor_abs_result)
  64.  
  65. result_vectors = []
  66.  
  67. for j in vectors_rpX_j:
  68.     for i in vectors_r1X_i:
  69.        
  70.         result_vector = [j_elem - i_elem for j_elem, i_elem in zip(j, i)]
  71.      
  72.         result_vectors.append(result_vector)
  73.  
  74.  
  75. vec_abs = []
  76.  
  77. for vec in result_vectors:
  78.     abs_value = math.sqrt(sum(x**2 for x in vec))
  79.     vec_abs.append(abs_value)
  80.  
  81. #
  82.  
  83. abs_list = []
  84.  
  85. for j in vectors_rpX_j:
  86.     for i in vectors_r1X_i:
  87.        
  88.         result_vector = [j_elem - i_elem for j_elem, i_elem in zip(j, i)]
  89.         result_vectors.append(result_vector)
  90.         abs_value_cubed = (math.sqrt(sum(x**2 for x in result_vector)))**3
  91.         abs_list.append(abs_value_cubed)
  92.  
  93.  
  94. total = []
  95.  
  96. if all(value != 0 for value in abs_list):
  97.     for vec, abs_value_cubed in zip(result_vectors, abs_list):
  98.         divided_vector = [element / abs_value_cubed if abs_value_cubed != 0 else 0 for element in vec]
  99.         total.append(divided_vector)
  100. else:
  101.     print("Hiba: Az abs_list tartalmaz nullát, ami nem megengedett az osztás során.")
  102.  
  103.  
  104. reduced = []
  105.  
  106. vector_length = len(total[0])
  107.  
  108. for i in range(0, len(total), N1):
  109.    
  110.     sum_vector = [0] * vector_length
  111.  
  112.     for vector in total[i:i + N1]:
  113.         sum_vector = [sum(x) for x in zip(sum_vector, vector)]
  114.    
  115.     reduced.append(sum_vector)
  116.  
  117. # A scalar és a 100-as vector pakk cross product szorzata.
  118. product_result = []
  119.  
  120. for vec in reduced:
  121.    
  122.     cross_prod = np.cross(Bp_res_part, vec)
  123.     product_result.append(cross_prod)
  124.  
  125. #print(Delta_r1)
  126.  
  127. #vec1 = [2,5,8]
  128. #vec2 = [10,-3,7]
  129.  
  130. #print("vektorok szorzat: ", np.cross(vec1, vec2))
  131.  
  132. result_vectors_2 = []
  133.  
  134. for j in vectors_rpX_j:
  135.     for i in vectors_r2X_i:
  136.        
  137.         result_vector_2 = [j_elem - i_elem for j_elem, i_elem in zip(j, i)]
  138.        
  139.         result_vectors_2.append(result_vector_2)
  140.  
  141.  
  142. norm_cubed_results = []
  143.  
  144. for vec in result_vectors_2:
  145.    
  146.     norm = np.linalg.norm(vec)
  147.     norm_cubed_results.append(norm ** 3)
  148.  
  149.  
  150. result2 = []
  151.  
  152. if all(value != 0 for value in norm_cubed_results):
  153.    
  154.     for vec, norm_cubed in zip(result_vectors_2, norm_cubed_results):
  155.        
  156.         divided_vector = [element / norm_cubed for element in vec]
  157.         result2.append(divided_vector)
  158. else:
  159.     print("Hiba: A norm_cubed_results tartalmaz nullát, ami nem megengedett az osztás során.")
  160.  
  161.  
  162. reduced_2 = []
  163. vector_length_2 = len(result2[0])
  164.  
  165.  
  166. for i in range(0, len(result2), N2):
  167.    
  168.     sum_vector = [0] * vector_length_2
  169.    
  170.     for vector in result2[i:i + N2]:
  171.         sum_vector = [sum(x) for x in zip(sum_vector, vector)]
  172.    
  173.     reduced_2.append(sum_vector)
  174.  
  175.  
  176. #print(len(total))
  177.  
  178. product_result_2 = []
  179.  
  180.  
  181. for vec in reduced_2:
  182.    
  183.     cross_prod = np.cross(Bp_2, vec)
  184.     product_result_2.append(cross_prod)
  185.  
  186.  
  187. total_result = []
  188.  
  189.  
  190. if len(product_result) == len(product_result_2):
  191.    
  192.     for i in range(len(product_result)):
  193.         summed_vector = [sum(x) for x in zip(product_result[i], product_result_2[i])]
  194.        
  195.         total_result.append(summed_vector)
  196. else:
  197.     print("Hiba: A listák hossza nem egyezik meg.")
  198.  
  199.  
  200.  
  201. final_sum_vector = [0] * len(total_result[0])
  202.  
  203. for vec in total_result:
  204.    
  205.     final_sum_vector = [sum(x) for x in zip(final_sum_vector, vec)]
  206.  
  207. #print(final_sum_vector)
  208.  
  209. result_vec = [Iv * x for x in Delta_l]
  210.  
  211. #print("A skalár értékkel megszorzott vektor:", result_vec)
  212.  
  213. #most jon az ero kiszamitasa :) maybe the force with U :)
  214.  
  215. force_total = []
  216.  
  217. for v in reduced:
  218.    
  219.     cross_prod_2 = np.cross(result_vec, final_sum_vector)
  220.    
  221.     force_total.append(cross_prod_2)
  222.  
  223. #print(result_vec)
  224. #print(len(force_total))
  225. #print(final_sum_vector)
  226.  
  227. force = np.cross(result_vec, final_sum_vector)
  228.  
  229. print(force) #last result in vector form for calc in N
  230.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement