Priessmann slot width in SWMM 5

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.

E-mail me when people leave their comments –

You need to be a member of SWMM 5 or SWMM or EPASWMM and SWMM5 in ICM_SWMM to add comments!

Join SWMM 5 or SWMM or EPASWMM and SWMM5 in ICM_SWMM

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;

This reply was deleted.