Learn R Programming

iemisc (version 0.5.0)

Manningtri: Triangular cross-section for the Gauckler-Manning-Strickler equation

Description

This function solves for one missing variable in the Gauckler-Manning- Strickler equation for a triangular cross-section and uniform flow.

Usage

Manningtri(Q = NULL, n = NULL, m = NULL, Sf = NULL, y = NULL,
  units = c("SI", "Eng"))

Arguments

Q
numeric vector that contains the discharge value [m^3/s or ft^3/s], if known.
n
numeric vector that contains the Manning's roughness coefficient n, if known.
m
numeric vector that contains the "cross-sectional side slope of m:1 (horizontal:vertical)", if known.
Sf
numeric vector that contains the the bed slope (m/m or ft/ft), if known.
y
numeric vector that contains the flow depth (m or ft), if known.
units
character vector that contains the system of units [options are SI for International System of Units and Eng for English units (United States Customary System in the United States and Imperial Units in the United Kingdom)]

Value

  • the missing parameter (Q, n, m, Sf, or y) & area (A), wetted perimeter (P), top width (B), and R (hydraulic radius) as a list.

encoding

UTF-8

source

r - Better error message for stopifnot? - Stack Overflow answered by Andrie on Dec 1 2011. See http://stackoverflow.com/questions/8343509/better-error-message-for-stopifnot.

Details

Gauckler-Manning-Strickler equation is expressed as

$$V = \frac{K_n}{n}R^\frac{2}{3}S^\frac{1}{2}$$

[object Object],[object Object],[object Object],[object Object],[object Object]

This equation is also expressed as

$$Q = \frac{K_n}{n}\frac{A^\frac{5}{3}}{P^\frac{2}{3}}S^\frac{1}{2}$$

[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Other important equations regarding the triangular cross-section follow: $$R = \frac{A}{P}$$

[object Object],[object Object],[object Object]

$$A = my^2$$

[object Object],[object Object],[object Object]

$$P = 2y\sqrt{\left(1 + m^2\right)}$$

[object Object],[object Object],[object Object]

$$B = 2my$$

[object Object],[object Object],[object Object]

Assumptions: uniform flow and prismatic channel

Note: Units must be consistent

References

  1. Terry W. Sturm,Open Channel Hydraulics, 2nd Edition, New York City, New York: The McGraw-Hill Companies, Inc., 2010, page 8, 36, 102, 120, 153-154.
  2. Dan Moore, P.E., NRCS Water Quality and Quantity Technology Development Team, Portland Oregon, "Using Mannings Equation with Natural Streams", August 2011,http://www.wcc.nrcs.usda.gov/ftpref/wntsc/H&H/xsec/manningsNaturally.pdf.
  3. Gilberto E. Urroz, Utah State University Civil and Environmental Engineering, CEE6510 - Numerical Methods in Civil Engineering, Spring 2006, "Solving selected equations and systems of equations in hydraulics using Matlab", August/September 2004,http://ocw.usu.edu/Civil_and_Environmental_Engineering/Numerical_Methods_in_Civil_Engineering/.
  4. Tyler G. Hicks, P.E.,Civil Engineering Formulas: Pocket Guide, 2nd Edition, New York City, New York: The McGraw-Hill Companies, Inc., 2002, page 423, 425.
  5. Wikimedia Foundation, Inc. Wikipedia, 26 November 2015, “Manning formula”,https://en.wikipedia.org/wiki/Manning_formula.

See Also

Manningtrap for a trapezoidal cross-section, Manningrect for a rectangular cross-section, Manningpara for a parabolic cross-section, and Manningcirc for a circular cross-section.

Examples

Run this code
library(iemisc)
library(iemiscdata)
# The equations used in this function were solved analytically after
# following these steps:
library(rSymPy) # review the package to determine its system dependencies
Q <- Var("Q")
n <- Var("n")
m <- Var("m")
k <- Var("k")
Sf <- Var("Sf")
y <- Var("y")

# Simplify with rSymPy
eqsimp <- sympy("expr = n*Q*(2*y*sqrt(1+m**2))**(2/3)-k*(m*y**2)**(5/3)*sqrt(Sf)")
# eqsimp is "Q*n - k*m*Sf**(1/2)*y**2"
# This is the equation that was used to solve for the missing variables


# Modified Exercise 4.1 from Sturm (page 153)
Manningtri(Q = 3000, m = 3, Sf = 0.002, n = 0.025, units = "Eng")
# Q = 3000 cfs, m = 3, Sf = 0.002 ft/ft, n = 0.025, units = English units
# This will solve for y since it is missing and y will be in ft

# Modified Exercise 4.1 from Sturm (page 153)
# See \\code{\\link[iemiscdata]{nchannel}} for the Manning's n table that the
# following example uses
# Use the maximum Manning's n value for 1) Natural streams - minor streams
# (top width at floodstage < 100 ft), 2) Mountain streams, no vegetation
# in channel, banks usually steep, trees and brush along banks submerged at
# high stages and 3) bottom: gravels, cobbles, and few boulders.
data(nchannel)

nlocation <- grep("bottom: gravels, cobbles, and few boulders",
nchannel$"Type of Channel and Description")
n <- nchannel[nlocation, 4] # 4 for column 4 - Maximum n
Manningtri(Q = 3000, m = 3, Sf = 0.002, n = n, units = "Eng")
# Q = 3000 cfs, m = 3, Sf = 0.002 ft/ft, n = 0.05, units = English units
# This will solve for y since it is missing and y will be in ft


# Modified Exercise 4.5 from Sturm (page 154)
Manningtri(Q = 950, m = 2, Sf = 0.022, n = 0.023, units = "SI")
# Q = 950 m^3/s, m = 2, Sf = 0.022 m/m, n = 0.023, units = SI units
# This will solve for y since it is missing and y will be in m

Run the code above in your browser using DataLab