Untitled
unknown
plain_text
9 months ago
992 B
17
Indexable
import math
# given data
L = 150.0 # m
Vdot = 0.35 # m^3/s
hL = 20.0 # m
T = 35.0 + 273.15 # K
p = 101325.0 # Pa
eps = 1.5e-6 # m
g = 9.81 # m/s²
R = 287.05
rho = p / (R * T) # kg/m³
mu = 1.458e-6 * T**1.5 / (T + 110.4) # Sutherland’s law
# start value for frictionfactor
f = 0.02
for i in range(20):
D = ((8 * L * Vdot**2 * f) / (math.pi**2 * g * hL))**0.2
# velocity and reynolds
V = 4 * Vdot / (math.pi * D**2)
Re = rho * V * D / mu
# friction factor
term = ((eps / D) / 3.7)**1.11 + 6.9 / Re
f_new = 1.0 / (-1.8 * math.log10(term))**2
error = abs((f_new - f) / f)
print(f"Iter {i+1}: f={f:.5f}, D={D:.4f} m, Re={Re:.2e}, error={error:.4%}")
if error < 0.01:
break
f = f_new
print("\nConverged results:")
print(f"Diameter D = {D:.4f} m")
print(f"Velocity V = {V:.3f} m/s")
print(f"Reynolds number = {Re:.2e}")
print(f"Friction factor = {f:.5f}")
Editor is loading...
Leave a Comment