public static void Main()
f = DarcyFrictionFactor(e, dh, Re);
public static double DarcyFrictionFactor(double AbsoluteRoughness, double HydraulicDiameter, double ReynoldsNumber)
double AR = AbsoluteRoughness;
double HD1 = HydraulicDiameter;
double RN = ReynoldsNumber;
double x, Xold, DeltaX, f;
for(int i = 0; i<100; i++)
DeltaX = (x - Xold) / (1 - (Math.Sqrt(Xold) * (1.14 - 2 * Math.Log(AR / HD1 + 9.35 / (RN * Math.Sqrt(Xold))) / Math.Log(10)) - 1) / (Math.Sqrt(x) * (1.14 - 2 * Math.Log(AR / HD1 + 9.35 / (RN * Math.Sqrt(x))) / Math.Log(10)) - 1));
if(Math.Abs(DeltaX) < tol){break;}
f = Math.Round(x*1000000)/1000000;
public static double DarcyWeisbach(double DarcyFactor, double Length, double Velocity, double Density, double HydraulicDiameter)