This function solves the Manning equation for water flow in a circular pipe at less than full. Uniform flow conditions are assumed, so that the pipe slope is equal to the slope of the water surface and the energy grade line. This is a modification of the code prepared by Irucka Embry in his iemisc package. The iemisc::manningcirc function was adapted here for more limited cases commonly used in classroom exercises, additional checks were included to ensure the pipe is flowing less than full, and a cross-section figure is also available. The iemisc::manningcirc and iemisc::manningcircy functions were combined into a single function. Manning n supplied is assumed to be that for full pipe flow; an optional argument may be supplied to account for n varying with depth.
Usage
manningc(
Q = NULL,
n = NULL,
Sf = NULL,
y = NULL,
d = NULL,
y_d = NULL,
n_var = FALSE,
units = c("SI", "Eng"),
ret_units = FALSE
)
Arguments
- Q
numeric vector that contains the flow rate [\(m^3 s^{-1}\) or \(ft^3 s^{-1}\)]
- n
numeric vector that contains the Manning roughness coefficient (for full flow or fixed).
- Sf
numeric vector that contains the slope of the pipe [unitless]
- y
numeric vector that contains the water depth [\(m\) or \(ft\)]
- d
numeric vector that contains the pipe diameter [\(m\) or \(ft\)]
- y_d
numeric vector that contains the ratio of depth to diameter [unitless]
- n_var
If set to TRUE the value of n for full flow is adjusted with depth. [Default is FALSE]
- units
character vector that contains the system of units [options are
SI
for International System of Units andEng
for English (US customary) units. This is used for compatibility with iemisc package]- ret_units
If set to TRUE the value(s) returned are of class
units
with units attached to the value. [Default is FALSE]
Value
Returns a list including the missing parameter:
Q - flow rate
V - flow velocity
A - cross-sectional area of flow
P - wetted perimeter
R - hydraulic radius (A/P)
y - flow depth
d - pipe diameter
Sf - slope
n - Manning's roughness (for full flow, or as adjusted if n_var is TRUE)
yc - critical depth
Fr - Froude number
Re - Reynolds number
Qf - Full pipe flow rate
Details
The possible applications of this function for solving the Manning equation for circular pipes are:
Given | Solve for |
y_d, Q, Sf, n | d |
d, Sf, Q, n | y |
y, d, Q, n | Sf |
y, d, Sf, n | Q |
d, Q, Sf, y | n |
The Manning equation (also known as the Strickler equation) describes flow conditions in an open channel under uniform flow conditions. It is often expressed as: $$Q = A\frac{C}{n}{R}^{\frac{2}{3}}{S_f}^{\frac{1}{2}}$$ where \(C\) is 1.0 for SI units and 1.49 for Eng (U.S. Customary) units. Critical depth is defined by the relation (at critical conditions): $$\frac{Q^{2}B}{g\,A^{3}}=1$$ where \(B\) is the top width of the water surface. Since B equals zero for a full pipe, critical depth is set to the pipe diameter \(d\) if the flow \(Q\) exceeds a value that would produce a critical flow at \(\frac{y}{d}=0.99\).
See also
xc_circle
for a cross-section diagram of the circular channel
Examples
#Solving for flow rate, Q: SI Units
manningc(d = 0.6, n = 0.013, Sf = 1./400., y = 0.24, units = "SI")
#> $Q
#> [1] 0.1034572
#>
#> $V
#> [1] 0.9795864
#>
#> $A
#> [1] 0.1056131
#>
#> $P
#> [1] 0.821663
#>
#> $R
#> [1] 0.1285358
#>
#> $y
#> [1] 0.24
#>
#> $d
#> [1] 0.6
#>
#> $Sf
#> [1] 0.0025
#>
#> $n
#> [1] 0.013
#>
#> $yc
#> [1] 0.2049712
#>
#> $Fr
#> [1] 0.7380179
#>
#> $Re
#> [1] 123074.7
#>
#> $Qf
#> [1] 0.3070058
#>
#returns 0.1 m3/s
#Solving for Sf, if d=600 mm and pipe is to flow half full
manningc(d = 0.6, Q = 0.17, n = 0.013, y = 0.3, units = "SI")
#> $Q
#> [1] 0.17
#>
#> $V
#> [1] 1.202504
#>
#> $A
#> [1] 0.1413717
#>
#> $P
#> [1] 0.9424778
#>
#> $R
#> [1] 0.15
#>
#> $y
#> [1] 0.3
#>
#> $d
#> [1] 0.6
#>
#> $Sf
#> [1] 0.00306623
#>
#> $n
#> [1] 0.013
#>
#> $yc
#> [1] 0.2653927
#>
#> $Fr
#> [1] 0.7910804
#>
#> $Re
#> [1] 176311.2
#>
#> $Qf
#> [1] 0.34
#>
#returns required slope of 0.003
#Solving for diameter, d when given y_d): Eng (US) units
manningc(Q = 83.5, n = 0.015, Sf = 0.0002, y_d = 0.9, units = "Eng")
#> $Q
#> [1] 83.5
#>
#> $V
#> [1] 2.287699
#>
#> $A
#> [1] 36.49955
#>
#> $P
#> [1] 17.49094
#>
#> $R
#> [1] 2.086769
#>
#> $y
#> [1] 6.301548
#>
#> $d
#> [1] 7.00172
#>
#> $Sf
#> [1] 2e-04
#>
#> $n
#> [1] 0.015
#>
#> $yc
#> [1] 2.338705
#>
#> $Fr
#> [1] 0.1367745
#>
#> $Re
#> [1] 433166.9
#>
#> $Qf
#> [1] 78.34463
#>
#returns 7.0 ft required diameter
#Solving for depth, y when given Q: SI units
manningc(Q=0.01, n=0.013, Sf=0.001, d = 0.2, units="SI")
#> $Q
#> [1] 0.01
#>
#> $V
#> [1] 0.3760535
#>
#> $A
#> [1] 0.02659196
#>
#> $P
#> [1] 0.4374827
#>
#> $R
#> [1] 0.06078403
#>
#> $y
#> [1] 0.1578279
#>
#> $d
#> [1] 0.2
#>
#> $Sf
#> [1] 0.001
#>
#> $n
#> [1] 0.013
#>
#> $yc
#> [1] 0.08454977
#>
#> $Fr
#> [1] 0.2974619
#>
#> $Re
#> [1] 22342.98
#>
#> $Qf
#> [1] 0.01037178
#>
#returns depth y = 0.158 m, critical depth, yc = 0.085 m
#Solving for depth, y when given Q: SI units, and n variable with depth
manningc(Q=0.01, n=0.013, Sf=0.001, d = 0.2, n_var = TRUE, units="SI")
#> $Q
#> [1] 0.01
#>
#> $V
#> [1] 0.3438694
#>
#> $A
#> [1] 0.02908081
#>
#> $P
#> [1] 0.4822183
#>
#> $R
#> [1] 0.06030631
#>
#> $y
#> [1] 0.174484
#>
#> $d
#> [1] 0.2
#>
#> $Sf
#> [1] 0.001
#>
#> $n
#> [1] 0.01414214
#>
#> $yc
#> [1] 0.08454977
#>
#> $Fr
#> [1] 0.2352268
#>
#> $Re
#> [1] 20270.21
#>
#> $Qf
#> [1] 0.01037178
#>
#returns depth y = 0.174 m, critical depth, yc = 0.085 m