Sunday, December 29, 2024

SWMM5 surfqual.c Summary

 The surfqual.c module in SWMM5 is responsible for handling the quality of runoff in subcatchments. This includes calculating the buildup of pollutants on the surface, their washoff due to rainfall, and the treatment of runoff using Low Impact Development (LID) practices. The module also deals with the loading of pollutants from surface runoff and provides the necessary functions to calculate and update the water quality throughout the simulation.

Key Concepts and Functions

  1. Pollutant Buildup:

    • Pollutants accumulate on the surface of subcatchments due to various land uses.
    • The module uses land use functions to calculate the buildup of pollutants over time.
    • surfqual_getBuildup calculates the pollutant buildup on the surface based on the land use and the subcatchment’s characteristics.
  2. Ponded Water and Wet Deposition:

    • Wet deposition and runon (water flowing from upstream subcatchments) contribute to the pollutant load in the ponded water.
    • findPondedLoads updates the concentration of pollutants in ponded water and contributes to the overall mass balance for pollutants.
    • surfqual_sweepBuildup accounts for the reduction in pollutant buildup through street sweeping.
  3. Pollutant Washoff:

    • Pollutant washoff occurs due to runoff, and this module computes how much of the accumulated pollutants are washed off during rainfall or snowmelt events.
    • surfqual_getWashoff calculates the washoff of pollutants due to the runoff generated by a subcatchment.
  4. LID Treatment:

    • LID practices like rain gardens or permeable pavements treat runoff by removing pollutants.
    • findLidLoads calculates the pollutant load reductions due to LID treatment and accounts for the runoff generated from these areas.
  5. Key Functions:

    • surfqual_initState initializes the pollutant buildup and quality state for a subcatchment.
    • surfqual_getBuildup adds to the pollutant buildup on the surface of a subcatchment.
    • surfqual_sweepBuildup reduces the buildup due to street sweeping.
    • surfqual_getWashoff calculates the washoff of pollutants due to runoff.
    • findWashoffLoads computes the washoff loads for each land use and adds them to the subcatchment's total runoff loads.
  6. Pollutant Load Mass Balance:

    • This module contributes to the mass balance for pollutants, updating the total mass of pollutants in the system and tracking them over time.
    • OutflowLoad holds the mass of pollutants in runoff leaving the subcatchment.

Core Variables:

  • OutflowLoad[]: An array used to track the mass load of pollutants in the runoff flowing out of the subcatchment.
  • Vevap: The volume of water evaporated from the subcatchment.
  • Vinfil: The volume of water infiltrated into the soil or groundwater.
  • Voutflow: The volume of water that flows out of the subcatchment as runoff.

Core Functions:

  • surfqual_initState: Initializes the pollutant state variables for the subcatchment (e.g., old and new pollutant concentrations).
  • surfqual_getBuildup: Calculates and adds to the pollutant buildup on the subcatchment’s surface.
  • surfqual_sweepBuildup: Reduces pollutant buildup over the subcatchment when street sweeping occurs.
  • surfqual_getWashoff: Computes the pollutant washoff from the subcatchment during rainfall or snowmelt events.
  • findWashoffLoads: Calculates the pollutant washoff based on the pollutant buildup and land use functions.
  • findLidLoads: Calculates the contribution of pollutants from LID areas (such as rain gardens or permeable pavements) and updates the overall mass balance.

Example Use Case:

Consider a stormwater management model that includes both urban and residential areas. The surfqual.c module would be used to calculate how much pollution accumulates on the surface due to runoff from streets, parking lots, and lawns (land use). During a rainstorm, pollutants are washed off these surfaces and carried into the drainage system. If LID practices are in place (e.g., permeable pavements), the module would account for the pollutants removed by these systems. The module would also keep track of the volume of water evaporated, infiltrated, and the overall pollutant load leaving the subcatchment.

Summary:

The surfqual.c module is crucial for managing water quality in SWMM5. It calculates the accumulation and removal of pollutants on the surface, accounting for various processes such as washoff, evaporation, infiltration, and LID treatment. The module provides functions to handle pollutant buildup, mass balance updates, and runoff water quality, which are critical for simulating stormwater behavior in urban environments.

No comments:

A comprehensive explanation of how minimum travel distance relates to link length in InfoSewer

In hydraulic modeling of sewer networks, the minimum travel distance is a fundamental parameter that affects how accurately the model can si...