Surface Water Flow Rate Calculator
.sw-calculator-container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
background: #f9f9f9;
border: 1px solid #e0e0e0;
border-radius: 8px;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
.sw-calculator-form {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}
@media (max-width: 600px) {
.sw-calculator-form {
grid-template-columns: 1fr;
}
}
.sw-input-group {
margin-bottom: 15px;
}
.sw-input-group label {
display: block;
margin-bottom: 5px;
font-weight: 600;
color: #333;
}
.sw-input-group input, .sw-input-group select {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
box-sizing: border-box;
}
.sw-input-group small {
display: block;
margin-top: 5px;
color: #666;
font-size: 12px;
}
.sw-btn {
grid-column: 1 / -1;
background-color: #0073aa;
color: white;
border: none;
padding: 15px;
font-size: 18px;
font-weight: bold;
border-radius: 4px;
cursor: pointer;
transition: background-color 0.3s;
margin-top: 10px;
}
.sw-btn:hover {
background-color: #005177;
}
.sw-results {
grid-column: 1 / -1;
margin-top: 25px;
padding: 20px;
background: #eefbff;
border: 1px solid #bde0ff;
border-radius: 4px;
display: none;
}
.sw-result-row {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
padding-bottom: 10px;
border-bottom: 1px solid #d0e8ff;
}
.sw-result-row:last-child {
border-bottom: none;
font-weight: bold;
font-size: 1.2em;
color: #0073aa;
}
.sw-content-section {
max-width: 800px;
margin: 40px auto;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
line-height: 1.6;
color: #333;
}
.sw-content-section h2 {
color: #2c3e50;
margin-top: 30px;
}
.sw-content-section table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
}
.sw-content-section th, .sw-content-section td {
border: 1px solid #ddd;
padding: 12px;
text-align: left;
}
.sw-content-section th {
background-color: #f2f2f2;
}
function updateUnitLabels() {
var unit = document.getElementById('sw_unit').value;
var widthLabel = document.getElementById('label_width_unit');
var depthLabel = document.getElementById('label_depth_unit');
if (unit === 'SI') {
widthLabel.innerText = 'Meters (m)';
depthLabel.innerText = 'Meters (m)';
} else {
widthLabel.innerText = 'Feet (ft)';
depthLabel.innerText = 'Feet (ft)';
}
}
function toggleCustomRoughness() {
var select = document.getElementById('sw_roughness_type');
var customContainer = document.getElementById('custom_n_container');
if (select.value === 'custom') {
customContainer.style.display = 'block';
} else {
customContainer.style.display = 'none';
}
}
function calculateSurfaceWater() {
// Get Inputs
var unit = document.getElementById('sw_unit').value;
var width = parseFloat(document.getElementById('sw_width').value);
var depth = parseFloat(document.getElementById('sw_depth').value);
var z = parseFloat(document.getElementById('sw_slope_z').value);
var s = parseFloat(document.getElementById('sw_bed_slope').value);
var roughnessSelect = document.getElementById('sw_roughness_type').value;
var n = 0;
if (roughnessSelect === 'custom') {
n = parseFloat(document.getElementById('sw_n_custom').value);
} else {
n = parseFloat(roughnessSelect);
}
// Validation
if (isNaN(width) || isNaN(depth) || isNaN(z) || isNaN(s) || isNaN(n) || width < 0 || depth <= 0 || s <= 0 || n <= 0) {
alert("Please enter valid positive numbers for all fields. Slope and Depth must be greater than zero.");
return;
}
// Calculations for Trapezoidal Channel (Rectangular if z=0)
// Area (A) = (b + z*y) * y
var area = (width + (z * depth)) * depth;
// Wetted Perimeter (P) = b + 2*y * sqrt(1 + z^2)
var perimeter = width + (2 * depth * Math.sqrt(1 + Math.pow(z, 2)));
// Hydraulic Radius (R) = A / P
var radius = area / perimeter;
// Manning's Equation for Velocity (V)
// SI: V = (1/n) * R^(2/3) * S^(1/2)
// Imperial: V = (1.486/n) * R^(2/3) * S^(1/2)
var k = (unit === 'SI') ? 1.0 : 1.486;
var velocity = (k / n) * Math.pow(radius, 2/3) * Math.pow(s, 1/2);
// Flow Rate (Q) = A * V
var flowRate = area * velocity;
// Display Results
var areaUnit = (unit === 'SI') ? 'm²' : 'ft²';
var lenUnit = (unit === 'SI') ? 'm' : 'ft';
var velUnit = (unit === 'SI') ? 'm/s' : 'ft/s';
var flowUnit = (unit === 'SI') ? 'm³/s' : 'cfs (ft³/s)';
document.getElementById('res_area').innerText = area.toFixed(4) + " " + areaUnit;
document.getElementById('res_perimeter').innerText = perimeter.toFixed(4) + " " + lenUnit;
document.getElementById('res_radius').innerText = radius.toFixed(4) + " " + lenUnit;
document.getElementById('res_velocity').innerText = velocity.toFixed(4) + " " + velUnit;
document.getElementById('res_flow').innerText = flowRate.toFixed(4) + " " + flowUnit;
document.getElementById('sw_result_box').style.display = 'block';
}
What is Surface Water Flow Rate?
Surface water flow rate calculation is a critical aspect of hydrology and civil engineering, specifically in the design of open channels, drainage ditches, storm sewers, and canals. It determines the volume of water passing through a specific cross-section of a channel per unit of time.
Understanding flow rate helps engineers ensure that drainage systems can handle peak rainfall events without overflowing, preventing flooding and erosion. The most widely used method for calculating this rate in open channels is the Manning's Equation.
Understanding Manning's Equation
Manning's Equation is an empirical formula that applies to uniform flow in open channels and is a function of the channel velocity, flow area, and channel slope. The formula differs slightly depending on whether you are using SI (Metric) or Imperial units.
The Formula
Q = A × V
Where:
- Q = Flow Rate (m³/s or ft³/s)
- A = Cross-Sectional Area of Flow (m² or ft²)
- V = Average Velocity (m/s or ft/s)
The Velocity (V) is calculated as:
- SI Units: V = (1 / n) × R2/3 × S1/2
- Imperial Units: V = (1.486 / n) × R2/3 × S1/2
Key Variables
- Manning's Roughness Coefficient (n): A unitless value representing the resistance to water flow provided by the channel surface material. Smoother surfaces like finished concrete have lower values, while rough surfaces like rocky streams have higher values.
- Hydraulic Radius (R): Calculated as the Cross-Sectional Area (A) divided by the Wetted Perimeter (P). It represents the efficiency of the channel shape.
- Slope (S): The slope of the energy grade line, often approximated as the slope of the channel bed (rise over run).
How to Calculate Hydraulic Radius
The geometry of the channel determines the Area (A) and Wetted Perimeter (P). This calculator supports trapezoidal channels, which are the most common shape for man-made earth channels. It can also calculate rectangular channels if the side slope (z) is set to 0.
- Bottom Width (b): The flat width at the bottom of the channel.
- Flow Depth (y): The vertical distance from the bottom to the water surface.
- Side Slope (z): The ratio of horizontal run to vertical rise (z:1). For example, a 2:1 slope means z=2.
Common Manning's Roughness Coefficients (n)
Selecting the correct roughness coefficient is vital for accurate results. Below are standard values used in hydraulic design:
| Channel Material |
Manning's n (Typical) |
| Glass / Plastic |
0.010 |
| Concrete (finished) |
0.013 |
| Concrete (unfinished) |
0.015 |
| Earth (clean, straight) |
0.022 |
| Gravel (firm) |
0.025 |
| Natural Stream (clean) |
0.030 |
| Natural Stream (rocks/weeds) |
0.040 – 0.050 |
Example Calculation
Imagine a rectangular concrete channel (Unfinished, n=0.015) designed to carry storm water. The channel is 2 meters wide (b=2) and the water depth is 1 meter (y=1). The channel has a slope of 0.5% (S=0.005).
- Area (A): 2m × 1m = 2.0 m²
- Perimeter (P): 2m + (2 × 1m) = 4.0 m
- Hydraulic Radius (R): 2.0 / 4.0 = 0.5 m
- Velocity (V): (1 / 0.015) × (0.5)2/3 × (0.005)1/2 ≈ 2.97 m/s
- Flow Rate (Q): 2.0 m² × 2.97 m/s ≈ 5.94 m³/s