Skip to contents

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 and Eng 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:

GivenSolve for
y_d, Q, Sf, nd
d, Sf, Q, ny
y, d, Q, nSf
y, d, Sf, nQ
d, Q, Sf, yn

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

Author

Ed Maurer, Irucka Embry

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