MDOT = 0.3 MU = 8.7E-5 DBUBBLES = 0.0025 NBUBBLES = 4 VBUBBLES = NBUBBLES * pi / 6 * DBUBBLES**3 AFLOW = pi / 4 * D**2 G = MDOT / AFLOW RE = G * D / MU # Steam properties water = Steam(P=P, x=0) vapor = Steam(P=P, x=1) # Part 1 print("Flow area: {:.2e} m^2 \t Mass flux: {:.0f} kg/s/m^2".format(AFLOW, G)) print("Reynolds number: {:.2e}".format(RE)) print("Bubble volume: {:.2e} m^3".format(VBUBBLES)) vflow = 0.01 * AFLOW beta = VBUBBLES / vflow alpha1 = beta x = two_phase.quality(alpha1, water.rho, vapor.rho) # Part 3 rho = two_phase.mixture_density(water.rho, vapor.rho, alpha1) print("rho (mixture): {:.1f} kg/m^3".format(rho)) fff = models.mcadams(RE) print("friction factor: {:.3f}".format(fff)) delta_p = rho * 9.81 * L + fff * L / D * G**2 / (2 * rho) print() print("1) Void fraction: {:.3f}".format(alpha1)) print(" Quality: {:.5f}".format(x)) print("3) Pressure drop: {:.1f} kPa".format(delta_p * 1E-3))
KC = 0.5 # loss coeficient of contraction KE = 1.0 # loss coeficient of expansion MDOT = 17.5E6 / 3600 # kg/s; total mass flow rate of coolant # Conservation of energy w/ conservation of mass: m2ass = MDOT / (2 * N2) # kg/s; mass flow rate per assembly, zone 2 m1ass = N2 / N1 * m2ass # kg/s; mass flow rate per assembly, zone 1 print("mass per ass., zone 1: {:.2f} kg/s".format(m1ass)) print("mass per ass., zone 2: {:.2f} kg/s".format(m2ass)) # mass flux, zone 2 g2 = lambda dh: m2ass / (pi / 4 * dh**2) # Reynolds number, zone 2 re2 = lambda dh: 4 * m2ass / (pi * dh * MU) # friction factor correlation, zone 2 f2 = lambda dh: models.mcadams(re2(dh)) # Conservation of Momentum, zone 2 com2 = lambda dh: RHO * 9.81 * Z2 + f2(dh) * Z2 / dh * g2(dh)**2 / (2 * RHO ) - DP # Solve the CoM equation for hydraulic diameter of assemblies in zone 2 dh2 = fsolve(com2, 0.01)[0] #print("Reynolds Number 2: {:.3e}".format(re2(dh2))) print("Hydraulic Diameter 2: {:.2f} cm".format(dh2 * 100)) mf2 = g2(dh2) mf1 = N2 / N1 * mf2 print("G1: {:.2f}\tG2: {:.2f} kg/s/m^2".format(mf1, mf2)) # Zone 1 re1 = 4 * m1ass / (pi * dh2 * MU) f1 = models.mcadams(re1) dp1 = RHO * 9.81 * Z1 + f1 * Z1 / dh2 * mf1**2 / (2 * RHO)
aflow = pi / 4 * (DO**2 - DC**2) print("\tFlow area: {:.2f} cm^2".format(aflow * 1E4)) com = lambda g: (K1 + K2 + 1.25 * F * L / dh) * g**2 / (2 * RHOW) + ( RHOW - RHOC) * 9.81 * L gmin = fsolve(com, 1000)[0] print("\tMass flux: {:.1f} kg/s/m^2".format(gmin)) mdotmin = gmin * aflow print("\tMass flow rate: {:.2f} kg/s".format(mdotmin)) print("\nPart 2: Temperature in the control rod under reduced flow conditions") print("\tPrandtl number: {:.2f}".format(PRW)) g = MDOTPRIME / aflow print("\tReduced mass flux: {:.1f} kg/s/m^2".format(g)) re = g * dh / MU print("\tReynolds number: {:.0f}".format(re)) fff = models.mcadams(re) print("\tFriction factor f: {:.3f}".format(fff)) nu = models.dittus_boelter(re, PRW) print("\tNusselt number: {:.2f}".format(nu)) h = KW / dh * nu print("\tHeat transfer coeff: {:.1f} kW/m^2-K".format(h / 1000)) # Referring back to PSet05, Eq. 14.22b zcrit = L / pi * atan(DC * h / (MDOTPRIME * CW) * L) print("\tHeight at max. T: {:.1f} cm".format(zcrit * 100)) # And again from the previous PSet, Eq. 14.19 q2peak = pi / 2 * Q2AVG q1peak = q2peak * pi * DC tco = lambda z: TIN + q1peak * (cos(pi / L * z) / (pi * DC * h) + (sin(pi / L * z) + 1) * L / (pi * MDOTPRIME * CW)) tmax = tco(zcrit)
mdot = mst / XOUT # water mixture in the downcomer hdown = hin * XOUT + hf * (1 - XOUT) water_down = Steam(P=P, h=hdown) rho_down = water_down.rho print("hdown: {:.0f} kJ/kg".format(hdown)) print("rho: {:.1f} kg/m^3".format(rho_down)) dp_down = rho_down * H * 9.81 print("DPdown: {:.1f} kPa".format(dp_down / 1000)) # water+steam mixture in the riser rhog = vapor.rho rhof = water.rho alpha = two_phase.alpha(XOUT, rhof, rhog) print("alpha: {:.4f}".format(alpha)) rhom = two_phase.mixture_density(rhof, rhog, alpha) print("rhom: {:.1f} kg/m^3".format(rhom)) dp_up = rhom * 9.81 * H print("DPup: {:.1f} kPa".format(dp_up / 1000)) # friction loss in the riser mu = water.mu g = lambda d: 4 * mdot / (pi * d**2) re = lambda d: g(d) * d / mu fff = lambda d: models.mcadams(re(d)) # Conservation of momentum com = lambda d: dp_down - dp_up - fff(d) * H / d * g(d)**2 / (2 * rhom) diameter = fsolve(com, 0.1)[0] print("\n" + "-" * 12) print("mst: {:.2f} kg/s".format(mst)) print("d: {:.3f} m".format(diameter))