Untitled

 avatar
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