Showing posts from April, 2009

Surcharge Level in SWMM 5

How does the surcharge depth work in SWMM 5?

The surcharge depth from the node attribute table is added to the maximum full depth in the routine dynwave.c as an upper bound check for the new iteration depth of yNew.

    // --- determine max. non-flooded depth
    yMax = Node[i].fullDepth;
    if ( canPond == FALSE ) yMax += Node[i].surDepth;

If the new depth yNew is greater then yMax then the program will calculate either the amount of flooding from the node or the ponded depth and volume.  If the node cannot pond (canPond is False) then the amount of overflow is the excess flow in the node and the new depth yNew is set to yMax.

    if ( canPond == FALSE )
    {  Node[i].overflow = (Node[i].oldVolume + dV - Node[i].fullVolume) / dt;
        Node[i].newVolume = Node[i].fullVolume;
        yNew = yMax;    }
    else    {
        Node[i].newVolume = Node[i].fullVolume + (yNew-yMax)*Node[i].pondedArea;
        Node[i].overflow = (Node[i].newVolume - Node[i].fullVolume) / dt;    }