Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.32 KB | None | 0 0
  1. #OUTPUTS:
  2. # l1
  3. # l2
  4. # lo
  5.  
  6. #CONSTANTS:
  7. meww = 1
  8. mewo = 1
  9.  
  10. rhow = 1
  11. rhoo = 1
  12.  
  13. gamma = 1
  14.  
  15. #Looping variabes:
  16. #h - 90 to 120 microns
  17. #delta P - 0.2 - 0.5psi
  18. #Qw2 - 0.1 - 0.3 micro L / sec
  19.  
  20. h_divisions = 20
  21. delta_P_divisions = 20
  22. Qw2_divisions = 20
  23. CA_divisions = 20
  24. total_answers = h_divisions * delta_P_divisions * Qw2_divisions * CA_divisions
  25.  
  26. h_lower_limit = 100
  27. h_upper_limit = 110
  28. h_step = (h_upper_limit - h_lower_limit)/h_divisions
  29.  
  30. delta_P_lower_limit = 0.2
  31. delta_P_upper_limit = 0.5
  32. delta_P_step = (delta_P_upper_limit - delta_P_lower_limit)/delta_P_divisions
  33.  
  34. Qw2_lower_limit = 0.1
  35. Qw2_upper_limit = 0.3
  36. Qw2_step = (Qw2_upper_limit - Qw2_lower_limit)/Qw2_divisions
  37.  
  38. CA_lower_limit = 0.04
  39. CA_upper_limit = 0.1
  40. CA_step = (CA_upper_limit - CA_lower_limit)/ CA_divisions
  41.  
  42.  
  43. #GOALS
  44. desired_w1 = 100 #in microns
  45. desired_w2 = 95 #in microns
  46.  
  47.  
  48. solution = [[0,0,0,0,0,0] for x in range(total_answers)]
  49. for h in range(int(h_lower_limit*100), int(h_upper_limit*100), int(h_step*100)):
  50. for delta_P in range( int(delta_P_lower_limit*100), int(delta_P_upper_limit*100), int(delta_P_step*100)):
  51. for Qw2 in range( int(Qw2_lower_limit*1000), int(Qw2_upper_limit*1000), int(Qw2_step*1000)):
  52.  
  53. Qw1 = 2 * Qw2
  54. Qo = Qw1 + Qw2
  55.  
  56. #NOTE: FOLLOWING WIDTHS CALCULATED USING BERNOULLI
  57. #IF NOT APPLICABLE, PLEASE CHANGE
  58. w1 = math.sqrt(rhow/(2*delta_P)) * Qw1/h
  59. w2 = math.sqrt(rhow/(2*delta_P)) * Qw2/h
  60. wo = math.sqrt(rhoo/(2*delta_P)) * Qo/h
  61.  
  62. for CA in range(CA_lower_limit,CA_upper_limit, CA_step):
  63. wn = CA* gamma / (2 * mewo * Qo)
  64.  
  65. if (h > w1) or (h > w2) or (h > wo) or (h > wn):
  66. solution[h * delta_P * Qw2 * CA] = [0,0,0,0,0,0]
  67. else:
  68. solution[h * delta_P * Qw2 * CA] = [h, w1, w2, wo, wn, delta_P]
  69.  
  70. selected_answer = 0
  71. error_square = 10000000
  72. flow_error = 10000000
  73.  
  74. for i in range(total_answers):
  75. current_error = math.pow(1000000 * w1 - desired_w1, 2) + math.pow(1000000 * w2 - desired_w2, 2)
  76.  
  77. if current_error < error_square:
  78. error_square = current_error
  79. selected_answer = i
  80.  
  81. elif current_error is error_square:
  82. flow = math.pow(Qw1,2) + math.pow(Qw2,2)
  83. if flow < flow_error:
  84. error_square = current_error
  85. selected_answer = i
  86.  
  87.  
  88. print(solution[selected_answer])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement