Monday, November 24, 2008

Force Main Transition in SWMM 5

Force Main Transition between Partial and Full Flow

1. If the force main is full then the program will use either Hazen-Willams or Darcy-Weisbach to calculate the friction loss (term dq1),

2. If the force main is NOT full then the program will use Manning's Equation.


// --- compute terms of momentum eqn.:
// --- 1. friction slope term
if ( xsect->type == FORCE_MAIN && isFull )
dq1 = dt * forcemain_getFricSlope(j, fabs(v), rMid);
else dq1 = dt * Conduit[k].roughFactor / pow(rWtd, 1.33333) * fabs(v);

double forcemain_getFricSlope(int j, double v, double hrad)
//
// Input: j = link index
// v = flow velocity (ft/sec)
// hrad = hydraulic radius (ft)
// Output: returns a force main pipe's friction slope
// Purpose: computes the headloss per unit length used in dynamic wave
// flow routing for a pressurized force main using either the
// Hazen-Williams or Darcy-Weisbach flow equations.
// Note: the pipe's roughness factor was saved in xsect.sBot in
// conduit_validate() in LINK.C.
//
{
double re, f;
TXsect xsect = Link[j].xsect;
switch ( ForceMainEqn )
{
case H_W:
return xsect.sBot * pow(v, 0.852) / pow(hrad, 1.1667); //(5.0.012 - LR)
case D_W:
re = forcemain_getReynolds(v, hrad);
f = forcemain_getFricFactor(xsect.rBot, hrad, re);
return f * xsect.sBot * v / hrad;
}
return 0.0;
}

No comments:

AI Rivers of Wisdom about ICM SWMM

Here's the text "Rivers of Wisdom" formatted with one sentence per line: [Verse 1] 🌊 Beneath the ancient oak, where shadows p...