Fluid Mechanics Spring 2022 Project 1 April 18, 2022 1 The breach width at the top and the bottom By the measurement during the experiment, we use the quadratic regression to get the function of Bd and Bw below Bd = −9.2767 × 10−5 · t2 + 0.15259 · t − 54.531 Bw = −8.4718 × 10−5 · t2 + 0.1136 · t − 33.411 We also assume the width remain stable when the crest is not eroding. Then, the code design would be below 1 2 3 4 5 6 7 def B_w(t): if t < 625: return 4.496 elif t > 625 and t < 832: return -8.4718E-5 * t ** 2 + 0.1136 * t - 33.411 else: return 2.46 8 9 10 11 12 13 14 15 def B_d(t): if t < 625: return 4.6006 elif t > 625 and t < 832: return -9.2767E-5 * t ** 2 + 0.15259 * t - 54.531 else: return 8.208 2 The rate of water flowing out the lake Here, the rate of flow would be determined by the average width of the breach, which is calculated by the inner division. btop = Bd (t) · (zL − zC ) + Bw (t) · (zdam − zL ) btop + bbelow , bbelow = Bw (t), b = zdam − zC 2 r 3 8g · b · (zL − zC ) 2 , f or zL > zC 27 QB (zL , b) = 0 , f or zL ≤ zC Then, the code design would be below, where we modify with a constant to fit the given steady result. 1 2 3 4 5 6 7 def Q_B(z_L, z_C, t): if z_L > z_C: b_top = (B_d(t) * (z_L - z_C) + B_w(t) * (dam_h - z_L)) / (dam_h - z_C) b = (b_top + B_w(t)) / 2 return sqrt(8 * g / 27) * b * (z_L - z_C)**1.5 * 0.4 else: return 0 1 Fluid Mechanics Spring 2022 Project 1 3 The slope factor and the calculation of the erosion Since the rate of erosion is proportional to the rate of water flowing out and also to the slope of the dam, so we design the slope factor Sd = 0.5 − 1.05 · (2.1 − zC ), 1 2 dVe = KQb Sd dt def slope_fac(z_C): return 0.5 - (2.1 - z_C) / 2.1 * 0.5 3 4 5 dV_erode = dt * Q_b[-1] * B_w(t[-1]) * slope_fac(z_c[-1]) * K z_c.append(z_c[-1] - dV_erode / B_w(t[-1]) / (5 + (z_c[0] - z_c[-1]) * 3.4)) 4 The Euler’s Method and the parameter settings dzL dzC and KQB Sd = Ac , we can get the variation of the water level and the crest dt dt level. Here, we calculate the surface area of the crest Ac = 5 + 3.4 · (2.1 − zc ). We can now set the parameters. The observation would be 0 < t < 1900 s, with every step of dt = 0.1 s. The following code is below. Using the equation QU − QB = A 1 2 3 4 5 6 7 8 9 z_l, z_c, Q_b = [0.], [2.1], [0.] t, dt = [0.], 10**(-1) while t[-1] < 1900: Q_b.append(Q_B(z_l[-1], z_c[-1], t[-1])) dz_lake = dt * (Q_U - Q_b[-1]) / A(z_l[-1]) dV_erode = dt * Q_b[-1] * B_w(t[-1]) * slope_fac(z_c[-1]) * K z_l.append(z_l[-1] + dz_lake) z_c.append(z_c[-1] - dV_erode / B_w(t[-1]) / (5 + (z_c[0] - z_c[-1]) * 3.4)) t.append(t[-1] + dt) 5 5.1 Results Analytic Results 2