Hello,
Since in the current version of SWMM doesn't allow the user to change the width of the Priessmann slot, I would like to know how EPASWMM really develops that value for different simulations or whether it's a constant value.
Hello,
Since in the current version of SWMM doesn't allow the user to change the width of the Priessmann slot, I would like to know how EPASWMM really develops that value for different simulations or whether it's a constant value.
You need to be a member of SWMM 5 or SWMM or EPASWMM and SWMM5 in ICM_SWMM to add comments!
Comments
See also this note
Continuing our long long force main discussion, I have identified the cause of the continuity error and offer a workaround for SWMM 5:
The root cause of this problem is a small value of denom in the surcharge algorithm of SWMM 5. The value of denom can be as small as 0.001 if you have a long pipe with a small diameter. The values of aWtd and 1/length in the dqdh link equation are both small (denom in this equation is always above 1 so it does not matter much in the solution). In these problem data sets if you keep lowering the time step the answer will get worse because a smaller dt makes dqdh even smaller.
// --- compute derivative of flow w.r.t. head
Link[j].dqdh = 1.0 / denom * GRAVITY * dt * aWtd / length * barrels; //(5.0.014 - LR)
the workaround is to use a minimum value of denom in dynwave.c. Through testing we have found that if you do not allow the value of denom to go below aMinDenom value of 1 then the continuity is low and the answer is reasonable.
// --- compute new estimate of node depth
if (SNACFlag && denom < MinDenom) denom = MinDenom; // (5.0.015 - RD)
This is how the surcharge algorithm is used in SWMM 5
Specifically look at these sections of code:
// --- allow surface area from last non-surcharged condition
// to influence dqdh if depth close to crown depth
denom = Xnode[i].sumdqdh;
if ( yLast < 1.25 * yCrown )
{
f = (yLast - yCrown) / yCrown;
denom += (Xnode[i].oldSurfArea/dt -
Xnode[i].sumdqdh) * exp(-15.0 * f);
}
// --- compute new estimate of node depth
if ( denom == 0.0 ) dy = 0.0;
else dy = corr * dQ / denom;
yNew = yLast + dy;
if ( yNew < yCrown ) yNew = yCrown - FUDGE;