Flood Routine Analysis of Diversion Tunnels



Outline of Flood Routine Analysis

png

Actual programing


iUD=1        # Assume reservoir water level increase
dh=0.0005    # Water level increment for searching equilibrium point
eps=0.001    # Convergence criteria
itmax=int(1.0/dh)*100
for i in range(0,nd-1):
    dt=ti[i+1]-ti[i]             # Time interval
    Qin=0.5*(q_in[i]+q_in[i+1])  # Average inflow rate during dt
    hh=0.0                       # Zero set of water level increment
    k=0
    j=0
    while 1:
        k=k+1
        j=j+1;
        hh=hh+float(iUD)*dh      # Update waler level increment
        elv=EL;    q1=OFC(elv,elof,qof,no)+outlet
        elv=EL+hh; q2=OFC(elv,elof,qof,no)+outlet
        Qout=0.5*(q1+q2)         # Average outflow rate during dt
        dS=(Qin-Qout)*dt*3600.0  # Storage accumulated during dt
        R=VOL+dS                 # Total reservoir volume
        elv=RET_H(nr,rh,rv,R)    # Reservoir water level at reservoir volume R
        if iUD==1 and j==10:  # 10 times trial assuming reservoir water level increase
            if EL+hh>elv:     # if reservoir water level is less than assumed water level,
                iUD=-1        # assume water level decrease
                hh=0.0
                j=0
        if iUD==-1 and j==10: # 10 times trial assuming reservoir water level decrease
            if EL+hh<elv:     # if reservoir water level is greater than assumed water level,
                iUD=1         # assume water level decrease
                hh=0.0
                j=0
        if np.abs(EL+hh-elv)<eps: break  # Judgement of convergence
        if itmax<k: break
    VOL=R    # Cumulative volume
    EL=EL+hh # Elevation
    q_out=q2 # Outflow
    print(i+1,iUD,ti[i+1],EL,EL-elv,VOL,q_in[i+1],q_out,file=fout)
    pEL[i]=EL
    pQo[i]=q_out
    sys.stdout.write('\r%d / %d' % (i+1,nd-1))
    sys.stdout.flush()

Programs and Script

Program nameDescription
py_eng_floodrT.pyProgram for flood routine analysis
py_eng_fig_floodrT.pyDrawing program of the result
py_fig_inp.pyDrawing program of input data
py_hv.pyProgram for making reservoir capacity (H-V) curve by cubit spline interpolation
py_hydro.pyProgram for making inflow time history data (hydrograph) by lenear interpolation
py_TNHQ.pyProgram for making outflow characteristic data (elevation-discharge curve) of tunnel
py_table.pyProgram for summary table of the results
hv0.txtBasic reservoir capacity data
hydro0.txtBasic inflow time history data (hydrograph)
a_py.txtShell script for execution of all steps automatically

Usage of programs


# Make inflow time history data (hydrograph)
python py_hydro.py  Qmax  dt  >  fnameW.txt
Qmax : maximum discharge
dt : time increment
fnameW.txt: output of this program (inflow time history)


# Make outflow characteristics data
python py_TNHQ.py  D  dh  frameW.txt
D : tunnel internal diameter
dh : elevation interval for calculation of outlow characteristics
fnameW.txt: output of this program (outflow characteristics of two tunnels)


# Flood routine analysis
python py_eng_floodrT.py  fnameR1.txt  fnameR2.txt  fnameR3.txt  fnameW.txt
fnameR1.txt: reservoir capacity curve data
fnameR2.txt: inflow time history data
fnameR3.txt: outflow characteristics data
fnameW.txt : output of this program


# Draw the graph from calculation result
python py_eng_fig_floodrT.py  fnameR.txt  fnameF.png
fnameR.txt: input file (output file of 'py_eng_floodrT.py')
fnameF.png: output image file

Related program

Program nameDescription
py_fig_tunnel.pyDrawing program of basic tunnel shape
py_fig_flowchart.pyDrawing program of flowchart for flood routine analysis
py_fig_table.pyDrawing program of table

# Draw the basic tunnel shape
python py_fig_tunnel.py
convert -trim fig_tunnel.png -bordercolor 'white' -border 10x10 fig_tunnel.png

# Draw the flowchart for flood routine analysis
python py_fig_flowchart.py  flag
convert -trim fig_flowchart.png -bordercolor 'white' -border 20x20 fig_flowchart.png
# flag=0: without axes and grid
# flag=1: with axes and grid

# Draw the table for explanation of symbles in flowchart
python py_fig_table.py  flag
convert -trim fig_table.png -bordercolor 'white' -border 5x5 fig_table.png
# flag=0: without axes and grid
# flag=1: with axes and grid

Information of Diversion Tunnels

Basic data of structures


png
Basic shape of Diversion Tunnel
Tunnel cross section data
ItemsDescription
Cross section shapeHorseshoe-shaped
Internal diameter x lanes
(8 cases were considered)
D=5.0m (invert width: 3.660m) x 2 lanes
D=6.0m (invert width: 4.392m) x 2 lanes
D=7.0m (invert width: 5.124m) x 2 lanes
D=8.0m (invert width: 5.856m) x 2 lanes
D=9.0m (invert width: 6.588m) x 2 lanes
D=10.0m (invert width: 7.321m) x 2 lanes
D=11.0m (invert width: 8.053m) x 2 lanes
D=12.0m (invert width: 8.785m) x 2 lanes
Distance between tunnels30m (from inside tunnel center to outside tunnel center)

Alignment data
Items Inside Outside
Length L=400m L=450m
Invert level of entrance EL.64.0m EL.64.0m
Invert level of exit EL.62.5m EL.62.5m
Gradient I=0.00375 I=0.00333
Curve-1 Bending radius: $\rho$=230m
Bending angle: $\theta$=39.5 deg.
Bending radius: $\rho$=260m
Bending angle: $\theta$=39.5 deg.
Curve-2 Bending radius: $\rho$=200m
Bending angle: $\theta$=48.2 deg.
Bending radius: $\rho$=230m
Bending angle: $\theta$=48.2 deg.

Calculation formula of mean velocity of free flow tunnel

\begin{equation} v=\cfrac{1}{n}\cdot R^{2/3}\cdot I^{1/2} \end{equation}

where, $v$ is mean velocity of free flow tunnel, $n$ is Manning's roughness coefficient ($n=0.015$), $R$ is hydraulic radius.

Calculation formula of mean velocity of pressure tunnel

\begin{equation} v=\sqrt{\cfrac{2 g \Delta H}{f_e+f_o+f_{b1}+f_{b2}+f\cdot L/R}} \end{equation}

where, $v$ is mean velocity of pressured tunnel, $\Delta H$ is difference of water level between tunnel entrance and tunnel exit.


Head loss considered as pressure tunnel
ItemsHead loss coefficient
Entrance head loss$f_e$=0.25
Exit head loss $f_o$=1.0
Bending head loss $f_b=[0.131+0.1632\cdot(D / \rho)]\cdot\sqrt{\theta / 90}$
$D$: Tunnel diameter (m)
$\rho$: Bending radius (m)
$\theta$: Bending angle (degree)
Friction head loss$f=\cfrac{2 g n^2}{R^{1/3}} \qquad (n=0.015)$
$R$: hydraulic radius

To make outflow characteristic data for analysis, summation of the discharges at the same elevation for each tunnel.

Input data for flood routing


EL(m)V(x10$^6$ m$^3$)
60 0.000
70 2.485
80 21.670
90 88.555
100 223.959
110 446.817
120 778.284
1301238.519
1401865.721
1502375.546
1603416.319
1704773.768
png
Basic Reservoir capacity data
(10m level interval)
Reservoir capacity curve by cubic spline interpolation
with 1m level interval
png png
Inflow time history (hydrograph)
with 1 hour time interval
Outflow characteristics for two diversion tunnels
with 0.1m level interval

Calculation results

Conditions for nemerical calculation
ItemValue
Elevation interval for searching equilibrium point0.5mm
Condition for convergence of water level1.0mm

Design flood Qmax=3130m$^3$/s

Summary of Calculation for Design flood Qmax=3130m3/s
Qin[max]
(m3/s)
Diversion
Tunnel
EL[max]
(m)
Qout[max]
(m3/s)
Flow area
(m2)
Mean velocity
(m/s)
3130 D5.0m x 299.641 660 42.40515.561
3130 D6.0m x 297.062 959 61.08415.699
3130 D7.0m x 294.2621287 83.16115.479
3130 D8.0m x 291.3641628108.63614.984
3130 D9.0m x 288.5031964137.50814.284
3130D10.0m x 285.7342278169.77713.419
3130D11.0m x 283.0792548205.44412.403
3130D12.0m x 280.6172756244.50811.270

png png
png png
png png
png png

Design flood Qmax=1349m$^3$/s

Summary of calculation for Design flood Qmax=1349m3/s
Qin[max]
(m3/s)
Diversion
Tunnel
EL[max]
(m)
Qout[max]
(m3/s)
Flow area
(m2)
Mean velocity
(m/s)
1349 D5.0m x 287.073 527 42.40512.421
1349 D6.0m x 284.057 735 61.08412.038
1349 D7.0m x 281.054 939 83.16111.297
1349 D8.0m x 278.137 1114108.63610.251
1349 D9.0m x 275.472 1233137.508 8.966
1349 D10.0m x 272.733 1311158.293 8.282
1349 D11.0m x 271.513 1337153.772 8.692
1349 D12.0m x 270.884 1342152.640 8.791

png png
png png
png png
png png



inserted by FC2 system