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

Low Impact Development (LID) control modules. More...

#include "Infiltration.hpp"
#include <utility>
#include <vector>
#include <cstddef>
#include <cstdint>
#include <string>
#include <fstream>
#include <map>
#include <memory>
Include dependency graph for LID.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmm::lid::LIDGroupSoA
 
class  openswmm::lid::LIDSolver
 
struct  openswmm::lid::LIDSolver::CompletedUnitInput
 

Namespaces

namespace  openswmm
 
namespace  openswmm::detail
 
namespace  openswmm::lid
 

Enumerations

enum class  openswmm::lid::LIDType : int {
  openswmm::lid::BIO_CELL = 0 ,
  openswmm::lid::RAIN_GARDEN = 1 ,
  openswmm::lid::GREEN_ROOF = 2 ,
  openswmm::lid::INFIL_TRENCH = 3 ,
  openswmm::lid::PERM_PAVEMENT = 4 ,
  openswmm::lid::RAIN_BARREL = 5 ,
  openswmm::lid::VEG_SWALE = 6 ,
  openswmm::lid::ROOF_DISCON = 7
}
 

Functions

bool openswmm::lid::hasNativeBottom (LIDType type, double storage_thickness, double storage_ksat)
 Classify whether an enumerated LID has an infiltrating native-soil bottom.
 
bool openswmm::lid::hasNativeBottom (const std::string &type, double thickness, double ksat)
 Classify native-soil contact from an exact authored type code.
 
double openswmm::lid::completedUnitStorage (const LIDGroupSoA &g, int unit)
 Measure one completed-source unit using its physical layer geometry.
 

Variables

constexpr int openswmm::lid::SURF = 0
 
constexpr int openswmm::lid::SOIL = 1
 
constexpr int openswmm::lid::STOR = 2
 
constexpr int openswmm::lid::PAVE = 3
 
constexpr int openswmm::lid::N_LAYERS = 4
 

Detailed Description

Low Impact Development (LID) control modules.

Supports 8 LID types with a layered vertical model: surface → soil → storage → drain

Vectorization strategy: Group all LID units of the same type across all subcatchments into contiguous arrays (similar to XSectGroups). Each LID type uses the same flux-rate formulas — batch-compute over all units of that type simultaneously.

LID type groups (SoA per type):

  • BIO_CELL group: N units → batch biocellFluxRates()
  • PERM_PAVEMENT group: M units → batch pavementFluxRates()
  • etc.
Note
Legacy reference: src/legacy/engine/lid.c, lidproc.c
Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
License
Apache-2.0