hydroflow ~weir
D Library for Hydraulics Engineering.
To use this package, run the following command in your project's root directory:
						Manual usage
						
						Put the following dependency into your project's dependences section:
					
hydroflow
A D-library for hydraulics calculations. This library was created to aide civil engineers and hydraulics engineers in calculation phase of their design or analysis.
Major Features
[x] Open Channel
[ ] Simple Weirs
[ ] Diversion Dam Analysis
- [x] Sharp-crested weir
 - [x] Broad-crested weir
 - [ ] Ogee-shaped weir
 
[ ] Reservoir construction and operation studies
Usage
Only one import is necessary to use the library.
import hydroflow;
All submodules will be imported by this module.
Solutions:
1. Rectangular Open Channel
Say we are given a rectangular channel problem and the unknown is the depth of the water in the channel:
| Given | Value | 
|---|---|
| Dicharge, Q | 1.0 m<sup>3</sup> | 
| Bed Slope, S | 0.001 | 
| Base Width, b | 1.0 m | 
| Manning's Roughness Coefficient, n | 0.015 | 
To solve this, you may refer to the code below:
import hydroflow;
import std.stdio;
void main()
{
    RectangularOpenChannel roc = new RectangularOpenChannel();
	roc.setUnknown = roc.Unknown.WATER_DEPTH;
	// Set the given values
	roc.setBedSlope = 0.001;
	roc.setDischarge = 1;
	roc.setBaseWidth = 1;
	roc.setManningRoughness = 0.015;
    
    // Now test if the calculation will be successful
    if (roc.solve())
    {
        writeln(roc.getWaterDepth);
    }
}
Using Different Unit
By default, the unit used is in metric. There are two (2) units available, the other is the english system.
To set the unit to english:
RectangularOpenChannel roc = new RectangularOpenChannel();
roc.setUnit = roc.Units.ENGLISH;
2. Analysis of Sharp-Crested (Gated) Weirs
Currently, the analysis for sharp-crested weirs only support metric system (meters, meters/second, cubic meters/sec).
SharpCrestedWeir scw = new SharpCrestedWeir();
// Uncomment line below to make inputs valid.
// scw.discharge = 100;
scw.usApronElev = 50;
scw.dsApronElev = 49.4;
scw.crestLength = 30;
scw.crestElev = 52;
scw.tailwaterElev = 52.5;
if (scw.analysis())
{
	// If the analysis has returned no error during 
	// calculation and error checking.
	writeln("Afflux elevation: ", scw.affluxElevation);
} 
else
{
	// Displays the error message.
	writeln(scw.errorMessage);
}
- ~weir released 6 years ago
 - alexiusacademia/hydroflow
 - MIT
 - Copyright © 2019, Alexius Academia
 
- Authors:
 - Dependencies:
 - none
 - Versions:
 - 
						
Show all 22 versions1.2.4 2019-Mar-02 1.2.3 2019-Mar-02 1.2.2 2019-Feb-25 1.2.1 2019-Feb-21 1.2.0 2019-Feb-19  - Download Stats:
 - 
						
- 
								
0 downloads today
 - 
								
0 downloads this week
 - 
								
3 downloads this month
 - 
								
43 downloads total
 
 - 
								
 - Score:
 - 0.7
 - Short URL:
 - hydroflow.dub.pm