Skip to content

SWMMBobSWMM6/ITM_SWMM

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ITM_SWMM

Illinois Transient Model integrated with SWMM

A Pascal-based fork of EPA SWMM with an optional transient-flow routing engine for rapidly filling and draining sewer systems.

![Status: Research-F28C28.svg)


Overview

ITM_SWMM is a public GitHub repository that packages a fork of the U.S. EPA Storm Water Management Model (SWMM) together with the Illinois Transient Model (ITM) as an optional flow-routing method. The repository is a public fork of artuleon/ITM_SWMM, currently on the main branch, with a compact top-level structure that includes bin, help, src, and tests, and it is written entirely in Pascal. [1][2]

The ITM-SWMM model is intended for hydraulic and sewer-system analyses where standard gradually varied or dynamic-wave assumptions may not be sufficient to represent rapidly varying pressurization and de-pressurization behavior. The FIU WISE research page describes ITM as a finite-volume, shock-capturing model designed to simulate the dynamics of rapidly filling and draining sewer systems. [2]

In practical terms, this repository is relevant for users interested in surcharge, mixed free-surface/pressurized transitions, transient events, and tunnel or interceptor systems where hydraulic state changes propagate quickly. That makes it particularly useful for research, benchmarking, and advanced sewer-transient investigations rather than everyday desktop SWMM use alone. [2][3]


Why this repository matters

EPA SWMM remains a foundational urban drainage model, but it was primarily developed as a rainfall-runoff-routing platform for urban systems rather than as a specialized transient solver. The FIU WISE description states that ITM-SWMM extends SWMM by adding ITM as an optional flow routing method, which broadens the model's applicability to transient hydraulic problems. [2]

That distinction matters when analyzing systems that experience rapid filling, gate closures, tunnel activation, force main interactions, or abrupt operational changes. In those cases, a shock-capturing finite-volume approach can provide a more suitable numerical framework for representing fast hydraulic transitions than a conventional routing approach alone. [2][3]

For SWMM practitioners, ITM_SWMM can therefore be read as a specialized experimental branch in the broader SWMM ecosystem: one that aims to keep SWMM's network and runoff workflow while enhancing the internal hydraulic engine for transient conditions. [2]


Repository contents

The current repository is small at the top level, but its layout is meaningful. GitHub shows the following main folders and files in the main branch. [1]

Path Purpose
bin/ Compiled executables, utilities, or supporting runtime artifacts likely intended for running or testing the model. [1]
help/ Help files or user-facing documentation shipped with the codebase. [1]
src/ Source code for the ITM_SWMM application or engine implementation. [1]
tests/ Example cases, regression inputs, or verification material for model behavior. [1]
LICENSE The repository is released under the MIT license. [1]
README.md The existing readme is minimal and does not yet document the codebase in depth. [1]

GitHub also reports that the repository has 1 commit, 0 tags, no published releases, and no packages at this time. Those signals suggest the public repo is still in an early published state and would benefit from clearer documentation around build steps, example models, and solver behavior. [1]


What ITM adds to SWMM

According to the FIU WISE project page, ITM-SWMM is a fork of public-domain SWMM that incorporates the Illinois Transient Model as an alternative routing option. The same source says ITM is intended to model rapidly filling and draining sewer systems using a finite-volume shock-capturing formulation. [2]

This means the repository is not just a UI wrapper or a pre/post-processor. It is best understood as a solver-oriented hydraulic extension to SWMM, focused on transient internal hydraulics. [2]

Typical use cases called out by the FIU page include evaluating the impact of gate closures on transient flow formation and studying hydraulic behavior in sewer systems with rapid operational changes. Those are exactly the sorts of problems where transient pressure and state transitions matter most. [2]


Likely workflow

Although the current repository page does not yet document the full execution workflow, the folder structure strongly suggests a conventional research-code arrangement: source in src, runnable artifacts in bin, model support files in help, and validation or demonstration cases in tests. [1]

A likely user workflow is:

  1. Build or obtain the executable from the Pascal source or bin directory. [1]
  2. Prepare or adapt a SWMM input case for an ITM-capable routing configuration. [2]
  3. Run the model and compare hydraulic results against standard SWMM behavior or expected transient responses. [2][3]
  4. Use the tests folder to verify installation, confirm numerical behavior, or reproduce example cases. [1]

Because the repo page does not provide explicit compile instructions yet, this README should be paired with a future pass through the actual source files to document compiler version, build targets, input syntax, and any ITM-specific options. [1]


Suggested build and setup section

The current repository page does not provide official build instructions, so the section below is intentionally framed as a documentation template rather than a verified command sequence. The codebase is 100% Pascal according to GitHub language detection, so compilation likely depends on a Pascal toolchain compatible with the original source organization. [1]

Suggested future documentation topics:
- Required compiler or IDE
- Supported operating systems
- How to build from src/
- Whether bin/ already contains a runnable executable
- Input file format expectations
- How ITM routing is enabled in a model
- Output files and report interpretation
- Test-case execution procedure

A complete technical README should eventually document whether the code is intended for Delphi, Free Pascal, Lazarus, or another Pascal environment. It should also explain whether the repository preserves classic SWMM executable behavior, a modified GUI, a command-line runner, or both. [1]


Recommended audience

This repository is most relevant to:

  • SWMM developers studying alternative hydraulic solvers. [2]
  • Researchers working on sewer transients, mixed-flow regimes, or pressurization behavior. [2][3]
  • Engineers evaluating tunnel, interceptor, or operational-control scenarios where rapid hydraulic transitions are important. [2]
  • Modelers comparing standard SWMM dynamics against specialized transient formulations. [2][3]

It is probably less suited to first-time SWMM users until the repo includes fuller install instructions, worked examples, and route-selection guidance. The current public landing page does not yet provide that onboarding material. [1]


Documentation gaps to close

The current repository page shows that the project has source, tests, help files, and binaries, but the published README does not explain how these parts fit together. A detailed README should therefore answer the following practical questions. [1]

  • What version or branch of SWMM is the fork based on? [1]
  • How is ITM activated in a model run? [2]
  • Which hydraulic assumptions differ from standard SWMM routing? [2][3]
  • What kinds of example cases are in tests/? [1]
  • Are there benchmark comparisons against standard SWMM, measured data, or published results? [1][2]
  • What limitations, stability constraints, or unsupported features should users know about before applying the solver? [3]

These are especially important for engineers who need to determine whether ITM_SWMM is a research prototype, a validated production-grade solver, or an intermediate experimental branch. [1][2]


Suggested expanded project structure

ITM_SWMM/
├── bin/          # Executables or run-time artifacts
├── help/         # User documentation and reference material
├── src/          # Pascal source code for the modified SWMM / ITM engine
├── tests/        # Example, regression, or validation models
├── LICENSE       # MIT license
└── README.md     # Project overview and usage documentation

If the source tree is later documented file-by-file, this section can be expanded into a deeper annotated map covering solver modules, parser modules, hydraulic routines, and report generation paths. The top-level GitHub listing already supports this first-level structure. [1]


Potential applications

The FIU WISE project page states that ITM-SWMM is applicable to sewer-system analyses involving transient flow behavior, including impacts of gate closures and rapidly varying hydraulic conditions. That points to a set of high-value applications. [2]

  • Deep tunnel drainage systems.
  • Interceptor networks with fast surcharge development.
  • Operational scenarios with gates, controls, or sudden routing changes.
  • Combined sewer systems where transitions between free-surface and pressurized flow are significant.
  • Research cases comparing hydraulic solvers under challenging transient conditions.

These applications align closely with the sort of problems where standard event-scale drainage simulation meets internal hydraulic transients that deserve more specialized treatment. [2][3]


Validation and testing

The presence of a tests directory is encouraging because transient solvers are especially sensitive to numerical setup, boundary conditions, and scenario definition. Even a small public repository benefits greatly from transparent regression cases and expected outputs. [1]

A future README should therefore document:

  • Each test model's purpose.
  • Expected solver behavior.
  • How to run the case.
  • Which outputs should be checked.
  • Whether results are compared to published examples or reference solutions.

That kind of verification framing would make the repository much more valuable to hydraulic modelers who want confidence in the transient formulation before applying it to real systems. [1][2]


License

GitHub identifies this repository as using the MIT license. That is a permissive license and is compatible with public reuse, modification, and redistribution under the license terms included in the repository. [1]

Because the repository is also shown as a fork of artuleon/ITM_SWMM, downstream users should preserve attribution and confirm whether any upstream documentation, binaries, or external dependencies have additional provenance notes worth carrying forward in release documentation. [1]


Proposed next improvements

To turn this repository from a minimal code drop into a strong public technical reference, the next documentation steps should include:

  1. A build section verified against the actual Pascal toolchain. [1]
  2. A solver section explaining how ITM differs from standard SWMM routing. [2][3]
  3. A model-input section showing how a user selects or activates ITM behavior. [2]
  4. A worked example from tests/ with expected results. [1]
  5. Screenshots or report excerpts from a transient test case. [1]
  6. A citation section linking the research background behind ITM. [2][4]

Those additions would make the repository more discoverable, more reusable, and far easier for SWMM practitioners to evaluate. [1][2]


Suggested short description for the repo header

Pascal-based fork of EPA SWMM that integrates the Illinois Transient Model (ITM) as an optional hydraulic routing engine for rapidly filling and draining sewer systems. [2][1]


Suggested topics

swmm
hydraulics
stormwater
sewer-modeling
transient-flow
urban-drainage
pascal
finite-volume
shock-capturing
tunnel-modeling

These topics are not currently set on the repository page, which is why GitHub shows no description, website, or topics. Adding them would improve discoverability. [1]

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Pascal 100.0%