首页 > 解决方案 > 虽然循环没有给我结果

问题描述

我目前正在编写一个代码来在环形空间中找到某个半径(零剪切应力的半径)。这是根据 S.Levy 于 1966 年发表的一篇论文得出的。

而洛普没有给我一个输出。我的输出应该是得到满足条件的 rm k_rel_1 = k_rel_2

任何人都可以帮忙吗?

这是我的代码:

import math

Ri = 0.27109328958898232 #Inner-Wall Radius
Ro = 0.356459960335948 #Outer-Wall Radius
R = Ro - Ri #Wall Radius

f = 0.0039 #friction factor for an annulus (given in page 29) (--> NEEDS TO BE CHECKED)
NRe = 4200 #Reynolds-number (RANDOM VALUE --> NEEDS TO BE CHECKED) 
NRe_f = NRe * (f/2)**0.5 
ko = 0.4 #mixing lenght in the outer wall assumed in the paper
ki = 1 #mixing lenght in the inner wall (RANDOM VALUE --> NEEDS TO BE CHECKED)   
rm = 0.28 #assumed value between Ri and Ro
nu = 1.4342E-4 #kinematic viscosity of air in ft^2/s at 0°C (--> NEEDS TO BE CHECKED)
rho = 0.080738 #Density of air in lb/ft^3 at 0°C (--> NEEDS TO BE CHECKED)
tau_R_o = 1 #Shear Stress outer wall (RANDOM VALUE --> NEEDS TO BE CHECKED) 
tau_R_i = 1 #Shear Stress inner wall (RANDOM VALUE --> NEEDS TO BE CHECKED)

res = 1
while res > 0.00001 :    
 print(rm) 

 tau_rel = (Ro*(rm**2-Ri**2))/(Ri*(Ro**2-rm**2))
 k_rel_1 = ((rm-Ri)/(Ro-rm))**0.5 * (Ro/Ri)**0.5 * ((rm+Ri)/(Ro+rm))**0.5 # =ko/ki
 so = rm/Ro #Ratio of rm to outer-Wall Radius Ro
 si = rm/Ri #Ratio of rm to inner-Wall Radius Ri

 v21_1 = 0.5 * NRe_f * ((1-(rm/Ro))/(1-(Ri/Ro)))**0.5 * (1+rm/Ro)**0.5
 v21_2 = v21_1*k_rel_1 

 A = math.log(1.5) + math.log(((tau_R_o/rho)**0.5) / nu * abs(Ro-rm)) 
 A += ( (-2*so*(1-so)*math.log(2)) / ((1+so)*(2*so-1)) ) 
 A += ( 0.5 * so*(1-so)*(1-3*so) / ( (1+so) * (so**2 + 0.5 * (1-so)**2) ) * math.log(3) )     
 A += ( ( 6/(1+so)) * math.log(so) / ( (1+so)*(((((1-so)/so)**2)-1))*((2*(so/(1-so))**2)+1) ) )
 A += ( (so*(1-so)*2**0.5*math.atan(2**0.5)) / ( (1+so)*(so**2 + 0.5*(1-so)**2)) ) 
 A += 14.84*ko - math.log(42)

 B = math.log(1.5) + math.log(((tau_R_i/rho)**0.5) / nu * abs(Ri-rm)) 
 A += ( (-2*si*(1-si)*math.log(2)) / ((1+si)*(2*si-1)) ) 
 A += ( 0.5 * si*(1-si)*(1-3*si) / ( (1+si) * (si**2 + 0.5 * (1-si)**2) ) * math.log(3) )     
 A += ( ( 6/(1+si)) * math.log(si) / ( (1+si)*(((((1-si)/si)**2)-1))*((2*(si/(1-si))**2)+1) ) )
 A += ( (si*(1-si)*2**0.5*math.atan(2**0.5)) / ( (1+si)*(si**2 + 0.5*(1-si)**2)) ) 
 A += 14.84*ki - math.log(42)

 k_rel_2 = (1/tau_rel)**0.5 * (A/B) 
 res = k_rel_2 - k_rel_1 

 rm += 0.00001 

标签: pythonloopswhile-loop

解决方案


推荐阅读