[GRASS-SVN] r68670 - grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.technical

svn_grass at osgeo.org svn_grass at osgeo.org
Sat Jun 11 13:35:06 PDT 2016


Author: Giulia
Date: 2016-06-11 13:35:06 -0700 (Sat, 11 Jun 2016)
New Revision: 68670

Modified:
   grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.technical/r.green.hydro.technical.py
Log:
r.green: modify colebrook-white formula

Modified: grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.technical/r.green.hydro.technical.py
===================================================================
--- grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.technical/r.green.hydro.technical.py	2016-06-11 16:45:24 UTC (rev 68669)
+++ grass-addons/grass7/raster/r.green/r.green.hydro/r.green.hydro.technical/r.green.hydro.technical.py	2016-06-11 20:35:06 UTC (rev 68670)
@@ -269,13 +269,50 @@
 
 
 def losses_Colebrooke(discharge, length, diameter, epsilon=0.015):
+    """ Return the Darcy-Weisbach losses with f computed with
+        the Colebrook-White formula
 
+        Parameters
+        -----------
+        discharge: float [m³/s]
+            Design discharge
+        length: float [m]
+            Design length of the pipe/derivation
+        diameter: float [m]
+            Design diameter for the derivation pipe
+        epsilon: [mm]
+            Roughness
+
+        Example
+        -------
+
+        >>> Q, d, l = 1., 2., 1000.
+        >>> hc = losses_Colebrooke(discharge=Q, length=l, diameter=d)
+        >>> hc == 0.032861244804694816 * 1000.0
+        """
+
     def coeff_f(x, *args):
-        q, l, d, e = args
-        return x + 2 * log10((e * 0.001) / (3.71 * d) +
-                             (x * 2.51 * 0.000001 * pi * d ** 2) / (4 * q * l))
+        """
+        Solve the Colebrook-White formula and return 1/radq(f)
+        Parameters
+        -----------
+        discharge: float [m³/s]
+            Design discharge
+        diameter: float [m]
+            Design diameter for the derivation pipe
+        epsilon: [mm]
+            Roughness
+        """
+        # TODO epsilon coefficient from GUI
+        q, d, e = args
+        first_log_arg = (e * 0.001) / (3.71 * d)  # epsilon [mm]
+        rho_water = 1000.  # kg/m2
+        mu_water = 0.001  # Pa
+        vel = discharge / (pi * d**2./4.)
+        re_number = rho_water * vel * d / mu_water
+        return x + 2 * log10(first_log_arg + 2.51*x/re_number)
 
-    out = fsolve(coeff_f, 0, args=(discharge, length, diameter, epsilon))
+    out = fsolve(coeff_f, 0, args=(discharge, diameter, epsilon))
     f = 1 / out**2
     h_colebrooke = (
         (f[0] * 8 * length * discharge ** 2) /



More information about the grass-commit mailing list