Welcome to SWMM5-EA’s documentation!

Contents:

Introduction to SWMM5-EA

SWMM5-EA is GUI based program to demonstrate the use of evolutionary algorithms to optimize drainage networks. It suppports drainage/sewerage networks modelled in EPA-SWMM 5.0 system, based on “SWMM5 package: Python bindings for EPA-SWMM 5.0 engine”.

Note

This documentation is NOT a substitute for a book/course on evolutionary methods or papers describing case studies on their applications in the urban drainage sector.

What It is

SWMM5-EA was written for education, not for research. Therefore it has

  • A user friendly (=Click and Run) user interface.
  • Limited functionality so as not to overwhelm the new user.

This should answer many questions in the form “Why it does not have feature A ?”.

At the moment it can demonstrate following types of applications:

  • Optimal sizing of pipes, detention storage or any other variable (or their combinations)
  • Calibration of watersheds or networks based on observed data.
  • Optimal planning of staged intervention in a changing (but known) future. For example: If the rainfall increases by 1% every year, what is the optimal detention plan to be implemented at the end of each 10 year period for a system with planning horizon of 30 years?

There are several basic examples distributed with the program. These are ready to run cases and should work as templates for new cases.

What it is not

In its present form, it is not a research tool. Of course no one is banned from doing research with it, but please note that it has not been sufficiently tested for such applications.

Same applies for real-world design work.

Quick Start

This section provides a quick walk-through a simple example that will help you to start using SWMM5-EA.

SWMM5 Network

There is a simple SWMM5 network named simple.inp that we use for this walk-through. It consists of three conduits (see figure below) three junctions and a free outfall.

The network

SWMM5 network simple.inp

The two upstream nodes have a (constant) inflow of 0.25 m^3/s.

Optimization problem

The objective is to find the least cost design, that does not cause flooding in the network. The total cost of building with circular conduits used in the network are given by

c=1000 (D^{0.8})

In drainage system design it is customary to have downstream conduits at least as large as any of the upstream nodes. So, in this example we have to maintain the following constraint:

D_{C3}\geq \mbox{max}(D_{C1},D_{C2})

Where D_{Cn} is the diameter of conduit Cn.

Steps

  1. Create a new project (Project > New Project)
  2. Save the Project in some directory ( Project > Save As, In the dialog select an empty direcotory)
  3. Load the SWMM network file to this project (File > Load SWMM file, Navigate to the sub-directory named simple in examples directory (in windows this is typically <program files>\\SWMM5-EA\\examples\\simple) and select simple.inp file. SWMM5-EA will copy the file to your project directory and load it.)
  4. Edit the project parameters ( Project > Edit ) and make sure the values in the dialog as same as the ones shown in the figure below. Click OK.
  5. Open the SWMM5 file and insert the place holders (File> Insert Slots). The value of Geometry 1 (Diameter of conduit according to SWMM convention) is 1 m for each of the three conduits C1\mbox{,}C2\mbox{ and }C3. Replace these values with @!v1!@\mbox{,}@!v2!@\mbox{ and } @!max(v1,v2)+v3!@. The first two are simple place holders allowing SWMM5-EA to change those values. But the third involves some trickery. By specifying @!max(v1,v2)+v3!@, we ensure that the diameter of the conduit C3 is always larger than the larger of those of two conduits C1 and C2. See Figure below. Click OK.
  6. Now Initialize the optimization (Optimization>Initialize the optimization). Check the Output and Errors and Warnings panes for any signs of trouble. If no errors warnings..
  7. Run the optimization (Optimization>Run Optimization)
  8. Now thee convergence plot will be drawn on the main plot window. See Figure Below.
  9. SWMM5-EA saves the best performing solution from each generation in the output directory, as a SWMM5 file. These files can be opened from SWMM5 Desktop and run, to examine their performance.
The Project Parameters

The Project Parameters

Place holders

Place-holders

Running optimization

Running Optimization

Understanding the Results

After completiung the simulation run, examine the sub-direcoty output under the prject directory. There are number of files like

Best_of_gen_000.inp
Best_of_gen_001.inp
Best_of_gen_002.inp
Best_of_gen_003.inp
Best_of_gen_004.inp
...
...
Best_of_gen_099.inp

Each of these files are legitimate SWMM input files (can be opened and run using SWMM desktop) and represent the best solution from each generation.

Best result from the first generation.

Best result from the first generation.

The following table shows the best result of some selected generations:

Generation Number D_1 m D_2 m D_3 m Flooding
0 0.69 0.55 0.76 No
10 0.57 0.52 0.74 No
40 0.57 0.52 0.74 No
70 0.57 0.52 0.74 No

Since this is a rather simple optimization, the convergence is really fast. After 10th generation, the best solution changes little.

Working Principles

EPA-SWMM 5.0

SWMM 5.0 is a dynamic rainfall-runoff simulation model, released by the environmental protection agency of The United States of America,

used for single event or long-term (continuous) simulation of runoff quantity and quality from primarily urban areas. The runoff component of SWMM operates on a collection of subcatchment areas that receive precipitation and generate runoff and pollutant loads. The routing portion of SWMM transports this runoff through various drainage network components:

  • a system of pipes,
  • channels,
  • storage/treatment devices,
  • pumps, and
  • regulators.

EPA has recently extended SWMM 5 to explicitly model the hydrologic performance of specific types of low impact development (LID) controls, such as:

  • porous pavement,
  • rain gardens,
  • green roofs,
  • street planters,
  • rain barrels,
  • infiltration trenches, and
  • vegetative swales.

SWMM 5.0 has its own, easy to use graphical user interface (Shown below)

EPA SWMM 5.0 Desktop

EPA SWMM 5.0 Desktop

Downloading and Installing SWMM 5.0

EPA SWMM 5.0 can be downloaded from US-EPA web site . The software is public domain, therefore free to use.

It works on Windows and Linux (use with Wine ). Should work fine on Mac OS X (with Wine) too, but this was not confirmed at the time of writing.

SWMM 5.0 Input file format

SWMM 5.0 has a text-based input file format. When you build a network model on the SWMM 5.0 Desktop and save it, the software in-fact saves a text based input file. This file has extension inp (e.g. StorageEx.inp). The format of the file is self-explanatory and looks like the following:

[TITLE]

[OPTIONS]
FLOW_UNITS           LPS
INFILTRATION         CURVE_NUMBER
FLOW_ROUTING         DYNWAVE
START_DATE           10/28/2011
START_TIME           00:00:00
REPORT_START_DATE    10/28/2011
REPORT_START_TIME    00:00:00
END_DATE             10/28/2011
END_TIME             06:00:00
SWEEP_START          01/01
SWEEP_END            12/31
DRY_DAYS             0
REPORT_STEP          00:01:00
WET_STEP             00:01:00
DRY_STEP             00:01:00
ROUTING_STEP         0:00:01
ALLOW_PONDING        NO
INERTIAL_DAMPING     PARTIAL
VARIABLE_STEP        0.75
LENGTHENING_STEP     0
MIN_SURFAREA         0
NORMAL_FLOW_LIMITED  SLOPE
SKIP_STEADY_STATE    NO
FORCE_MAIN_EQUATION  H-W
LINK_OFFSETS         DEPTH
MIN_SLOPE            0

[EVAPORATION]
;;Type       Parameters
;;---------- ----------
CONSTANT     0.0
DRY_ONLY     NO

[RAINGAGES]
;;               Rain      Time   Snow   Data
;;Name           Type      Intrvl Catch  Source
;;-------------- --------- ------ ------ ----------
Gage1            VOLUME    0:03   1.0    TIMESERIES ABM10yrs2hrs

[SUBCATCHMENTS]
;;                                                 Total    Pcnt.             Pcnt.    Curb     Snow
;;Name           Raingage         Outlet           Area     Imperv   Width    Slope    Length   Pack
;;-------------- ---------------- ---------------- -------- -------- -------- -------- -------- --------
A2               Gage1            J4               96.9     40.80    1000     4.13     0
A1               Gage1            J1               33.8     29.24    1000     4.13     0
A3               Gage1            J3               50.7     32.17    1000     4.13     0
A4               Gage1            J10              30.0     25.17    1000     4.13     0
A5               Gage1            J9               25.5     10.00    1000     4.13     0
E1               Gage1            J8               34.9     0        1000     1.86     0

[SUBAREAS]
;;Subcatchment   N-Imperv   N-Perv     S-Imperv   S-Perv     PctZero    RouteTo    PctRouted
;;-------------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
A2               0.01       0.1        0.05       0.05       25         OUTLET
A1               0.01       0.1        0.05       0.05       25         OUTLET
A3               0.01       0.1        0.05       0.05       25         OUTLET
A4               0.01       0.1        0.05       0.05       25         OUTLET
A5               0.01       0.1        0.05       0.05       25         OUTLET
E1               0.01       0.1        0.05       0.05       25         OUTLET

[INFILTRATION]
;;Subcatchment   CurveNum   HydCon     DryTime
;;-------------- ---------- ---------- ----------
A2               90         0.5        7
A1               90         0.5        7
A3               90         0.5        7
A4               90         0.5        7
A5               90         0.5        7
E1               70         0.5        7

[JUNCTIONS]
;;               Invert     Max.       Init.      Surcharge  Ponded
;;Name           Elev.      Depth      Depth      Depth      Area
;;-------------- ---------- ---------- ---------- ---------- ----------
J2               45.633     1.8        0          0          0
J5               47.381     1.8        0          0          0
J6               41.909     1.8        0          0          0
J8               23.459     3          0          0          0
J9               37.689     2          0          0          0
J10              32.424     2          0          0          0

[OUTFALLS]
;;               Invert     Outfall    Stage/Table      Tide
;;Name           Elev.      Type       Time Series      Gate
;;-------------- ---------- ---------- ---------------- ----
J12              15.649     FREE                        NO

[STORAGE]
;;               Invert   Max.     Init.    Storage    Curve                      Ponded   Evap.
;;Name           Elev.    Depth    Depth    Curve      Params                     Area     Frac.    Infiltration Parameters
;;-------------- -------- -------- -------- ---------- -------- -------- -------- -------- -------- -----------------------
J11              27.159   1.8      0        FUNCTIONAL 500     0        0        0        0
J3               36.437   1.8      0        FUNCTIONAL 500     0        0        0        0
J4               52.853   1.8      0        FUNCTIONAL 500    0        0        0        0
J1               55       1.8      0        FUNCTIONAL 500     0        0        0        0
J7               29.589   1.8      0        FUNCTIONAL 500     0        0        0        0

[CONDUITS]
;;               Inlet            Outlet                      Manning    Inlet      Outlet     Init.      Max.
;;Name           Node             Node             Length     N          Offset     Offset     Flow       Flow
;;-------------- ---------------- ---------------- ---------- ---------- ---------- ---------- ---------- ----------
T4-1             J9               J10              117        0.02       0          0          0          0
T4-2             J10              J11              117        0.02       0          0          0          0
T4-3             J11              J8               60         0.02       1.5        0          0          0
T1-1             J1               J2               242        0.02       1          0          0          0
T1-2             J2               J3               400        0.02       0          0          0          0
T2-1             J4               J5               288        0.02       1          0          0          0
T2-2             J5               J6               288        0.02       0          0          0          0
T2-3             J6               J3               288        0.02       0          0          0          0
T3-1             J3               J7               428        0.02       1          0          0          0
T3-2             J7               J8               342        0.02       1.0        0          0          0
T5               J8               J12              235        0.01       0          0          0          0

[XSECTIONS]
;;Link           Shape        Geom1            Geom2      Geom3      Geom4      Barrels
;;-------------- ------------ ---------------- ---------- ---------- ---------- ----------
T4-1             CIRCULAR     2                0          0          0          1
T4-2             CIRCULAR     2                0          0          0          1
T4-3             CIRCULAR     2                0          0          0          1
T1-1             CIRCULAR     1.2              0          0          0          1
T1-2             CIRCULAR     1.2              0          0          0          1
T2-1             CIRCULAR     2                0          0          0          1
T2-2             CIRCULAR     2                0          0          0          1
T2-3             CIRCULAR     2                0          0          0          1
T3-1             CIRCULAR     1.5              0          0          0          3
T3-2             CIRCULAR     1.5              0          0          0          2
T5               RECT_OPEN    .4               3          0          0          1

[LOSSES]
;;Link           Inlet      Outlet     Average    Flap Gate
;;-------------- ---------- ---------- ---------- ----------

[TIMESERIES]
;;Name           Date       Time       Value
;;-------------- ---------- ---------- ----------
;2hr
2hrRainfall                 0:00       0.00
2hrRainfall                 0:01       0.12
2hrRainfall                 0:02       0.12
2hrRainfall                 0:03       0.12
2hrRainfall                 0:04       0.12
2hrRainfall                 0:05       0.12
2hrRainfall                 0:06       0.13
2hrRainfall                 0:07       0.13
2hrRainfall                 0:08       0.13
2hrRainfall                 0:09       0.14
2hrRainfall                 0:10       0.13
2hrRainfall                 0:11       0.14
2hrRainfall                 0:12       0.15
2hrRainfall                 0:13       0.15
2hrRainfall                 0:14       0.14
2hrRainfall                 0:15       0.16
2hrRainfall                 0:16       0.16
2hrRainfall                 0:17       0.16
2hrRainfall                 0:18       0.17
2hrRainfall                 0:19       0.17
2hrRainfall                 0:20       0.17
2hrRainfall                 0:21       0.17
2hrRainfall                 0:22       0.18
2hrRainfall                 0:23       0.19
2hrRainfall                 0:24       0.19
2hrRainfall                 0:25       0.2
2hrRainfall                 0:26       0.2
2hrRainfall                 0:27       0.2
2hrRainfall                 0:28       0.21
2hrRainfall                 0:29       0.22
2hrRainfall                 0:30       0.23
2hrRainfall                 0:31       0.23
2hrRainfall                 0:32       0.24
2hrRainfall                 0:33       0.25
2hrRainfall                 0:34       0.26
2hrRainfall                 0:35       0.27
2hrRainfall                 0:36       0.28
2hrRainfall                 0:37       0.29
2hrRainfall                 0:38       0.3
2hrRainfall                 0:39       0.31
2hrRainfall                 0:40       0.33
2hrRainfall                 0:41       0.35
2hrRainfall                 0:42       0.37
2hrRainfall                 0:43       0.39
2hrRainfall                 0:44       0.41
2hrRainfall                 0:45       0.43
2hrRainfall                 0:46       0.46
2hrRainfall                 0:47       0.5
2hrRainfall                 0:48       0.53
2hrRainfall                 0:49       0.57
2hrRainfall                 0:50       0.62
2hrRainfall                 0:51       0.67
2hrRainfall                 0:52       0.74
2hrRainfall                 0:53       0.81
2hrRainfall                 0:54       0.91
2hrRainfall                 0:55       1.02
2hrRainfall                 0:56       1.17
2hrRainfall                 0:57       1.34
2hrRainfall                 0:58       1.58
2hrRainfall                 0:59       1.89
2hrRainfall                 1:00       2.34
2hrRainfall                 1:01       2.1
2hrRainfall                 1:02       1.73
2hrRainfall                 1:03       1.45
2hrRainfall                 1:04       1.24
2hrRainfall                 1:05       1.08
2hrRainfall                 1:06       0.96
2hrRainfall                 1:07       0.86
2hrRainfall                 1:08       0.78
2hrRainfall                 1:09       0.7
2hrRainfall                 1:10       0.65
2hrRainfall                 1:11       0.59
2hrRainfall                 1:12       0.55
2hrRainfall                 1:13       0.51
2hrRainfall                 1:14       0.48
2hrRainfall                 1:15       0.45
2hrRainfall                 1:16       0.43
2hrRainfall                 1:17       0.39
2hrRainfall                 1:18       0.38
2hrRainfall                 1:19       0.36
2hrRainfall                 1:20       0.34
2hrRainfall                 1:21       0.33
2hrRainfall                 1:22       0.32
2hrRainfall                 1:23       0.3
2hrRainfall                 1:24       0.29
2hrRainfall                 1:25       0.27
2hrRainfall                 1:26       0.26
2hrRainfall                 1:27       0.26
2hrRainfall                 1:28       0.24
2hrRainfall                 1:29       0.24
2hrRainfall                 1:30       0.23
2hrRainfall                 1:31       0.22
2hrRainfall                 1:32       0.22
2hrRainfall                 1:33       0.21
2hrRainfall                 1:34       0.2
2hrRainfall                 1:35       0.2
2hrRainfall                 1:36       0.19
2hrRainfall                 1:37       0.18
2hrRainfall                 1:38       0.18
2hrRainfall                 1:39       0.18
2hrRainfall                 1:40       0.17
2hrRainfall                 1:41       0.17
2hrRainfall                 1:42       0.16
2hrRainfall                 1:43       0.16
2hrRainfall                 1:44       0.15
2hrRainfall                 1:45       0.15
2hrRainfall                 1:46       0.15
2hrRainfall                 1:47       0.15
2hrRainfall                 1:48       0.14
2hrRainfall                 1:49       0.14
2hrRainfall                 1:50       0.14
2hrRainfall                 1:51       0.14
2hrRainfall                 1:52       0.13
2hrRainfall                 1:53       0.13
2hrRainfall                 1:54       0.13
2hrRainfall                 1:55       0.13
2hrRainfall                 1:56       0.13
2hrRainfall                 1:57       0.12
2hrRainfall                 1:58       0.12
2hrRainfall                 1:59       0.12
2hrRainfall                 2:00       0.11

;Rainfall Data
ABM10yrs2hrs                0:00       0
ABM10yrs2hrs                0:03       0.36
ABM10yrs2hrs                0:06       0.38
ABM10yrs2hrs                0:09       0.40
ABM10yrs2hrs                0:12       0.42
ABM10yrs2hrs                0:15       0.45
ABM10yrs2hrs                0:18       0.48
ABM10yrs2hrs                0:21       0.52
ABM10yrs2hrs                0:24       0.56
ABM10yrs2hrs                0:27       0.61
ABM10yrs2hrs                0:30       0.67
ABM10yrs2hrs                0:33       0.74
ABM10yrs2hrs                0:36       0.82
ABM10yrs2hrs                0:39       0.93
ABM10yrs2hrs                0:42       1.08
ABM10yrs2hrs                0:45       1.27
ABM10yrs2hrs                0:48       1.54
ABM10yrs2hrs                0:51       1.94
ABM10yrs2hrs                0:54       2.58
ABM10yrs2hrs                0:57       3.75
ABM10yrs2hrs                1:00       6.33
ABM10yrs2hrs                1:03       4.75
ABM10yrs2hrs                1:06       3.07
ABM10yrs2hrs                1:09       2.22
ABM10yrs2hrs                1:12       1.71
ABM10yrs2hrs                1:15       1.39
ABM10yrs2hrs                1:18       1.16
ABM10yrs2hrs                1:21       1.00
ABM10yrs2hrs                1:24       0.88
ABM10yrs2hrs                1:27       0.78
ABM10yrs2hrs                1:30       0.70
ABM10yrs2hrs                1:33       0.64
ABM10yrs2hrs                1:36       0.58
ABM10yrs2hrs                1:39       0.54
ABM10yrs2hrs                1:42       0.50
ABM10yrs2hrs                1:45       0.47
ABM10yrs2hrs                1:48       0.44
ABM10yrs2hrs                1:51       0.41
ABM10yrs2hrs                1:54       0.39
ABM10yrs2hrs                1:57       0.37
ABM10yrs2hrs                2:00       0.35

[REPORT]
INPUT      NO
CONTROLS   NO
SUBCATCHMENTS ALL
NODES ALL
LINKS ALL

[TAGS]

[MAP]
DIMENSIONS 0.000 0.000 10000.000 10000.000
Units      None

[COORDINATES]
;;Node           X-Coord            Y-Coord
;;-------------- ------------------ ------------------
J2               5415.068           1893.131
J5               6566.084           1307.978
J6               6360.316           1809.538
J8               5138.567           3802.918
J9               4418.378           2889.821
J10              4424.808           3153.462
J12              5312.184           5063.248
J11              4752.751           3571.429
J3               5595.115           2336.819
J4               6823.294           1140.791
J1               4778.472           1417.292
J7               5325.044           3102.020

[VERTICES]
;;Link           X-Coord            Y-Coord
;;-------------- ------------------ ------------------
T4-2             4739.891           3397.812
T4-3             5035.683           3571.429
T4-3             5042.113           3706.464
T3-2             5337.905           3732.185

[Polygons]
;;Subcatchment   X-Coord            Y-Coord
;;-------------- ------------------ ------------------
A2               9137.862           940.587
A2               9302.164           1556.721
A2               8390.285           2526.106
A2               7379.825           2567.182
A2               7429.116           1400.634
A1               4086.563           458.062
A1               4160.500           975.615
A1               4669.837           950.970
A1               5548.856           1452.093
A1               5581.716           310.190
A1               4867.000           195.178
A3               6297.935           2800.132
A3               6946.737           3271.194
A3               7907.907           3139.752
A3               7940.767           3410.852
A3               7293.018           3745.043
A3               6971.382           4602.045
A3               6585.271           4429.527
A3               6420.969           3714.811
A3               5955.091           2959.011
A4               3550.123           3206.322
A4               3342.244           2942.475
A4               2918.491           3086.392
A4               2478.747           3030.424
A4               3070.403           4013.851
A4               3686.044           3917.907
A5               4226.039           1863.728
A5               3682.356           1607.877
A5               3442.496           1815.756
A5               3554.430           1975.662
A5               3466.482           2207.527
A5               3826.272           2647.271
A5               4337.974           2719.229
A5               4689.769           2567.318
E1               4365.046           4144.795
E1               4518.867           4808.151
E1               4586.164           5202.318
E1               4481.613           5204.819
E1               3818.829           4472.268
E1               3722.900           4062.388

[SYMBOLS]
;;Gage           X-Coord            Y-Coord
;;-------------- ------------------ ------------------
Gage1            9936.709           6075.949

How SWMM5-EA exploits the input file

Problems of metaheuristics [1] involve solving a problems with various input parameters. For example a problem of calculating optimal sizing of a number of detention storages involve running SWMM 5.0 model with different values for detention storage sizes. Example 1 is such a problem. How SWMM5-EA facilitates this process of running SWMM with different values for a set of variables is by using a ‘template‘ system. SWMM5-EA marks a number of locations in the input file with special space-holders (We use symbols like @!v1!@). For example the [STORAGE] section of our swmm input file:

[STORAGE]
    ;;               Invert   Max.     Init.    Storage    Curve                      Ponded   Evap.
    ;;Name           Elev.    Depth    Depth    Curve      Params                     Area     Frac.    Infiltration Parameters
    ;;-------------- -------- -------- -------- ---------- -------- -------- -------- -------- -------- -----------------------
    J11              27.159   1.8      0        FUNCTIONAL 500     0        0        0        0
    J3               36.437   1.8      0        FUNCTIONAL 500     0        0        0        0
    J4               52.853   1.8      0        FUNCTIONAL 500     0        0        0        0
    J1               55       1.8      0        FUNCTIONAL 500     0        0        0        0
    J7               29.589   1.8      0        FUNCTIONAL 500     0        0        0        0

is templated like:

[STORAGE]
    ;;               Invert   Max.     Init.    Storage    Curve                      Ponded   Evap.
    ;;Name           Elev.    Depth    Depth    Curve      Params                     Area     Frac.    Infiltration Parameters
    ;;-------------- -------- -------- -------- ---------- -------- -------- -------- -------- -------- -----------------------
    J11              27.159   1.8      0        FUNCTIONAL !@v1@!     0        0        0        0
    J3               36.437   1.8      0        FUNCTIONAL !@v2@!     0        0        0        0
    J4               52.853   1.8      0        FUNCTIONAL !@v3@!     0        0        0        0
    J1               55       1.8      0        FUNCTIONAL !@v4@!     0        0        0        0
    J7               29.589   1.8      0        FUNCTIONAL !@v5@!     0        0        0        0

This is done by user by simply blocking the number that need to be a place-holder and pressing a button (See figure below)

How to create place-holders in a SWMM input file.

How to create place-holders in a SWMM input file.

Then the optimization engine will fill these place-holders with relevent values during each evaluation step.

[1]Metaheuristic methods optimizes a problem by iteratively trying to improve a candidate solution with regard to a given measure of quality. The Evolutionary computation method used in SWMM5-EA is a metaheuristic method.

SWMM5-EA User Interface

SWMM5-EA graphical user interface is shown below.

SWMM5-EA Graphical user interface with important toolbar buttons annotated.

SWMM5-EA Graphical user interface with important toolbar buttons annotated.

Typical Workflow

Typical use of SWMM5-EA in a new problem involves following steps:

  1. Create a SWMM network using SWMM 5.0 desktop application. (See SWMM 5.0 on how to install SWMM 5.0)
  2. Decide the decision variables (e.g. For a detention storage optimization case like Example 1, this could be a variable indicating the size of each storage)
  3. Decide cost functions (e.g. In Example 1 this is the sum of construction cost of reservoirs and a penalty cost for flooding).
  4. Create a new SWMM5-EA project.
  5. Edit the project parameters to suitable values.
  6. Copy the SWMM input file to the project space. (Use the button)
  7. Edit the SWMM file and introduce the place-holders (See How SWMM5-EA exploits the input file)
  8. Initialize the optimization (check ‘output’/’Errors and Warnings’ panes for any problems).
  9. Run the Optimization

Example 1: Simple Optimization

Network with five detention storages.

Network with five detention storages.

Figure above shows the drainage network used in this example. It consists of six subcatchments, drained to the outlet J12 by a dendritic drainage network. The network has five detention basins (J1, J3, J4, J7 and J11). Each detention storage is 1.8 m deep. We want to find the least-cost design that does not cause flooding [1]. The cost c_1 for construction of a detention basin of area a is simplified as:

c_1= 1000 a^{0.8}

We apply the constraint of not allowing for flooding by adding a penalty (cost) for flooding (c_2). We are not really interested in calculating ‘cost’ of flooding, rather we just want to make it high so that the optimizer penalizes the solutions with flooding. For example we could use:

c_2= 1.0E12 f

Following figures show the Project parameters and swmm input file place-holders used in the example, respectively.

Project prperties

Project properties.

Place-holders

Place-holders for detention storage area.

The figure below shows a part of the convergence plot.

Convergence Plot

Convergence plot.

After 100 generations, the best solution has properties:

Junction A(m2)
J11 7592
J3 0
J4 13670
J1 2987
J7 0
Constrction Cost 3.91 millons
   
System is not flooded.  
   
[1]For a design rainstorm lasting over a period of 2:00 hours, with 10 year return period. This rain storm is already built into the network model.

Example 2: Calibration of Networks

Network for calibration example.

Network for calibration example.

This example demonstrates the use of SWMM5-EA in calibration of drainage networks. The simple network shown in the above figure consists of a single watershed connected to an open rectangular channel of 3 m (width) x 1 m (maximum depth) size, flowing into a free outfall. Measured data for the flow time series in the channel is available (below).

The original network file. Measured flow data shown in green squares.

The original network file. Measured flow data shown in green squares. Red line is the flow hydrograph before calibration.

In this example we vary the six parameters.

Parameter Range Variable used
Width of overland flow 100 m20000 m v1
Avg. slope (watershed) 0.0001 %5.0 % v2
Mannings n    
Impervious 0.00010.5 v3
Pervious 0.00010.5 v4
Detention Storage    
Impervious 1 mm10 mm v5
Pervious 1 mm10 mm v6

They are represented in the Project as follows:

Project parameters.

Project parameters used.

Place Holders in SWMM5 input file.

Place Holders in SWMM5 input file.

Following figures show the calibration results at first generation and after 100 generations.

The network file corresponding to the best solution at first generation.

The network file corresponding to the best solution at first generation.

The network file corresponding to the best solution after 100 generations.

The network file corresponding to the best solution after 100 generations.

Example 3: Staged Optimization

Staged detention storage planning example.

Staged detention storage planning example.

This example demonstrates the use of SWMM5-EA in staged-optimization problems. The problem goes like this: In order to mitigate flooding in a drainage network five detention storages are planned (The network and detention storage locations are exactly same as Example 1. The planning horizon in 30 years and planning should be done to be implemented in 3 stages (Stage 0: start of the project, Stage 1: 10 years into the future and Stage 2: 20 years into the future). The design goal is the least cost detention storage with no flooding for the design rainstorm given. It is estimated that the impervious fraction in each watershed will increase by 10% during each 10 year stage. For simplicity it is assumed that all other parameters remain same (e.g. no climate change!) [1].

In staging problems, SWMM5-EA handles swmm input files in a very different way from other applications (e.g. Simple Optimization, Calibration). It duplicates the SWMM input file to n copies (where n is the number of stages). When the Insert Slots button is pressed (to edit place-holders), this process happens automatically and the place-holder dialog is filled with a compound file containing all these copies. Each swmm input file is separated by an entry similar to

;;;;;;;;  STAGE 2  ;;;;;;;;  NOTE: Do not alter this line in anyway! ;;;;;;;;;;;;;;;;;;;;
Place Holders in SWMM5 input file.

Place Holders in SWMM5 input file. This dialog presents a compound text file containing n (= number of stages) SWMM input files. SWMM input files are separated by a special entry: ;;;;;;;;  STAGE 2  ;;;;;;;;  NOTE: Do not ...

In the parameters pane, in addition to the usual ones, three new parameters are exposed: The number of stages, size of a stage and the discount rate.

Project parameters.

Project parameters used.

Note that it is the responsibility of the user to introduce the time value concept when writing the cost function 1 (c_1). The user can use any of the variables used in the left hand pane of the dialog when writing the equations. In this example, we have used the discount rate and stage size like this. Our cost formula is

\begin{array}{rl}
    c_1=&1000*(v1**.8+v2**.8+v3**.8+v4**.8+v5**.8) \\
        &+1000*(v6**.8+v7**.8+v8**.8+v9**.8+v10**.8)/(1+\mbox {discount\_rate} /100)**(1*\mbox{stage\_size}) \\
            &+1000*(v11**.8+v12**.8+v13**.8+v14**.8+v15**.8)/(1+\mbox{discount\_rate}/100)**(2*\mbox{stage\_size})
\end{array}

The cost function 2 (c_2) remains simple. It is interpreted as annual flood cost. The SWMM5-EA system will calculate flood cost at each year using this user-provided formula, bring it to the present value and sums it all to calculate the net present cost of flooding.

However, in this example (similar to Example 1,) we do no consider flood as a real cost but as a penalty.

After 100 generations.

After 100 generations.

[1]The SWMM5-EA software allows implementing more complex problems where a number of parameters change. However, for this example we use a simple scenario.

Indices and tables