有没有办法加速这个代码?你知道吗
- 在下面的代码中L\U mo,U\U star,rah,H,etc。所有阵列的大小都相同,即4000 x 5000。你知道吗
- 对于当前循环,循环中的所有其他变量都是常量。你知道吗
- 当我运行以下嵌套for循环时,几乎需要40-50分钟
for i in range(img_width):
for j in range(img_height):
error=99
L_mo_cell = L_mo[i,j]
U_star_cell = U_star[i,j]
rah_cell = rah[i,j]
H_cell = H[i,j]
Zom_cell=Zom[i,j]
d_cell=d[i,j]
Zoh_cell=Zoh[i,j]
To_cell=To[i,j]
if (L_mo_cell < 0) & (L_mo_cell > -10): # Unstable Conditions
while error > 0.05:
dumm=rah_cell # dummy variable
x1=(1-16*(Zm-d_cell)/L_mo_cell)**0.25
x2=(1-16*(Zoh_cell)/L_mo_cell)**0.25
x3=(1-16*(Zoh_cell)/L_mo_cell)**0.25
phi_h1=2*np.log((1+x1**2)/2)
phi_h2=2*np.log((1+x2**2)/2)
phi_m1=2*np.log((1+x1)/2)+np.log((1+x1**2)/2)-2*np.arctan(x1)+np.pi/2
phi_m2=2*np.log((1+x3)/2)+np.log((1+x3**2)/2)-2*np.arctan(x3)+np.pi/2
#Calculate Parameters (U*,rah,H,L_mo)
U_star_cell=(u*const_k)/(np.log((Zm-d_cell)/Zom_cell)-phi_m1+phi_m2)
rah_cell=(np.log((Zm-d_cell)/Zoh_cell)-phi_h1+phi_h2)/(U_star_cell*const_k)
H_cell=(rho_a*const_Cpa)*(To_cell-Ta)/rah_cell
L_mo_cell=(U_star_cell**3*(Ta+273.15)*rho_a*const_Cpa)/(const_g*const_k*H_cell)
error = abs((rah_cell-dumm)/rah_cell)
elif (L_mo_cell > 0) & (L_mo_cell < 10): #Stable Conditions
while error > 0.05:
dumm=rah_cell #dummy variable
phi_h1=6*((Zm-d_cell)/L_mo_cell)*np.log((1-Zm/L_mo_cell))
phi_h2=6*(Zom_cell/L_mo_cell)*np.log((1-Zm/L_mo_cell))
phi_m1=phi_h1
phi_m2=phi_h2
# Calculate Parameters (U*,rah,H,L_mo)
U_star_cell=(u*const_k)/(np.log((Zm-d_cell)/Zom_cell)-phi_m1+phi_m2)
rah_cell=(np.log((Zm-d_cell)/Zoh_cell)-phi_h1+phi_h2)/(U_star_cell*const_k)
H_cell=(rho_a*const_Cpa)*(To_cell-Ta)/rah_cell
L_mo_cell=-(U_star_cell**3*(Ta+273.15)*rho_a*const_Cpa)/(const_g*const_k*H_cell)
error = abs((rah_cell-dumm)/rah_cell)
# print (error)
else: #Neutral Conditions
state=0
U_star_cell=(u*const_k)/(np.log((Zm-d_cell)/Zom_cell))
rah_cell=np.log((Zm-d_cell)/Zom_cell)*np.log((Zm-d_cell)/Zoh_cell)/(u*const_k**2)
H_cell=(rho_a*const_Cpa)*(To_cell-Ta)/rah_cell
L_mo_cell=-(U_star_cell**3*Ta*rho_a*const_Cpa)/(const_g*const_k*H_cell)
U_star[i,j]=U_star_cell
rah[i,j]=rah_cell
H[i,j]=H_cell
L_mo[i,j]=L_mo_cell
Tags:
目前没有回答
相关问题 更多 >
编程相关推荐