OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
Landuse.hpp File Reference

Pollutant buildup and washoff per land use — batch SoA. More...

#include <vector>
Include dependency graph for Landuse.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmm::landuse::BuildupParams
 
struct  openswmm::landuse::WashoffParams
 
struct  openswmm::landuse::SurfaceQualitySoA
 
class  openswmm::landuse::LanduseSolver
 

Namespaces

namespace  openswmm
 
namespace  openswmm::landuse
 

Enumerations

enum class  openswmm::landuse::BuildupType : int {
  openswmm::landuse::NONE = 0 ,
  openswmm::landuse::POWER = 1 ,
  openswmm::landuse::EXPON = 2 ,
  openswmm::landuse::SATUR = 3 ,
  openswmm::landuse::EXTERNAL = 4
}
 
enum class  openswmm::landuse::WashoffType : int {
  openswmm::landuse::NONE = 0 ,
  openswmm::landuse::EXPON = 1 ,
  openswmm::landuse::RATING = 2 ,
  openswmm::landuse::EMC = 3
}
 

Detailed Description

Pollutant buildup and washoff per land use — batch SoA.

Each subcatchment can have multiple land uses, each with per- pollutant buildup and washoff functions. The buildup/washoff equations are pure arithmetic — vectorisable across all (subcatchment × landuse × pollutant) triples.

Buildup models:

  • Power: B(t) = min(c0, c1 * t^c2)
  • Exponential: B(t) = c0 * (1 - exp(-c1 * t))
  • Saturation: B(t) = c0 * t / (c2 + t)

Washoff models:

  • Exponential: W = k * Q^n * B
  • Rating curve: W = k * Q^n
  • EMC: W = constant concentration

All models are applied identically per element — vectorisable.

Note
Legacy reference: src/legacy/engine/landuse.c, surfqual.c
Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
License\n MIT License