Uploaded by cornea.lineman-0n

dam break intro

advertisement
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
Download