weirbos.broadcrest()
function, the computations are exclusively based on the foot-second unit system and careful adherance by the user is required.The discharge equation for an acceptable tail-water condition $h_t$ is
The discharge equation is solved for two conditions that consider the approach velocity head. First, the equation is solved as shown above for $H$ through iteration and $C_v=1$. Second, the equation is solved using $h$ and $C_v$, which is determined by nomograph lookup.
The weirbos.broadcrest()
function is vectorized meaning that optional vectors of $h$ can be specified along with an optional and equal length vector $h_t$. The function assumes rectangular approach conditions to compute approach area $A$ if not superceded by the optional A
argument, which also can be a vector.
The weirbos.broadcrest()
function also permits optional vectors of $L$ and $b/B$ (by the argument contractratio
) so that tuning of the weir-computed discharge to a measured discharge potentially can be made. The crest length $L$ can be used to increase discharge slightly by shortening in say the circumstances of a slightly downward sloping crest. (Such potential “crest” sloping is distinct from the downstream embankment slope---do not confuse the two.) The $b/B$ can be used to decrease discharge by decreasing $k_R$ in say the circumstance of an inlet that is rougher or has asperities that slightly increase the expected contraction and reduce flow efficiency. To clarify, the fact that $L$ and $b/B$ can be vectorized as optional arguments shows a mechanism by which tuning of the computational results to measured $Q$ values can occur without replacing the fundamental $C$ and $C_v$ nomographs of BOS and nomograph and lookup tables for $k_c$, $k_R$, and $k_s$ of TWRI3A5 (Hulsing, 1967). In all cases, these coefficients can be superceded by user-specified scalars or vectors in various combinations.
weirbos.broadcrest(h, ht=NULL, b=NULL, B=NULL, P=NULL, L=NULL, R=0, r=0, A=NULL, alpha=1, slopeus="vertical", slopeds="vertical", kc=NULL, kr=NULL, ks=NULL, C=NULL, contractratio=NULL, hhptest=TRUE, extended=TRUE, header="", flowdigits=2, coedigits=3, verbose=FALSE, eps=0.001, maxit=20)
contractratio
and A
to bypass any computations normally involving $B$. This would be the mechanism to bypass the $B$ as a scalar restriction;tan()
.) The string “vertical” must be provided as the value for slopeus
for vertical slopes;tan()
.) The string “vertical” must be provided as the value for slopeds
for vertical slopes;slopeds
. Optionally, this coefficient may be a vector;slopeus
. Optionally, this coefficient may be a vector;b.over.B[i] <- contractratio[i]
;attributes()
of the returned data frame under the non-original label name of header
;flow
of the returned data frame.data.frame()
is returned and the extended=TRUE
version is described below:
weirbos.broadcrest
.extended=FALSE
version is restricted to the most salient items including $Q_H$, $Q_h$, $Q_{cv}$, $v_o$, $C$, $C_v$, $k_c$, $k_R$, and $k_s$.
Hulsing, Harry, 1967, Measurement of peak discharge at dams by indirect methods: U.S. Geological Survey Techniques of Water-Resources Investigations, Book 3, Chapter A5, 29 p., http://pubs.usgs.gov/twri/twri3-a5/
weir.broadcrest
# Simple, scalar inputs and results
weir.broadcrest(type="BOS", 0.5, b=8, B=11, P=6, L=3.25);
# Vector of heads
weir.broadcrest(type="BOS", c(0.5,0.4,0.3), b=8, B=11, P=6, L=3.25);
# Now compare two solutions by weirbos.broadcrest() to weir3a5.broadcrest()
h <- seq(0.01,1.5, by=0.001)
Qtank <- weir3a5.broadcrest(h, b=7.97, B=10.97, P=1.125, L=3.76, flowdigits=4)
QtankbosA <- weirbos.broadcrest(h, b=7.97, B=10.97, P=1.125, L=3.76, flowdigits=4)
QtankbosB <- weirbos.broadcrest(h, b=7.97, B=10.97, P=1.125, L=3.76,
hhptest=FALSE, flowdigits=4)
plot(Qtank$flow, h, type="l", col=8, lwd=6,
xlab="FLOW, CFS", ylab="HEAD, FEET")
lines(QtankbosA$flow, h, col=2, lwd=4) # see the trunction in the red line
lines(QtankbosB$flow, h, col=3, lwd=2)
# See examples for weir3a5.broadcrest() for additional examples that
# explore higher complexity of argument settings, which test the
# nomographs for k_c, k_R, and k_s
Run the code above in your browser using DataLab