OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
openswmm::lid::LIDSolver Class Reference

#include <LID.hpp>

Collaboration diagram for openswmm::lid::LIDSolver:

Public Member Functions

void init (SimulationContext &ctx)
 
LIDGroupSoAgroup (int type_index)
 Access a type group (for testing or external queries).
 
const LIDGroupSoAgroup (int type_index) const
 
int numGroups () const
 
void execute (SimulationContext &ctx, double dt, double rainfall, double evap_rate)
 Compute LID performance for all units (batch by type).
 

Static Public Member Functions

static void batchBioCellFlux (LIDGroupSoA &g, double rainfall, double evap_rate, double dt)
 Batch bio-cell flux rates — VECTORISABLE.
 
static void batchBarrelFlux (LIDGroupSoA &g, double rainfall, double dt)
 Batch rain barrel flux rates — VECTORISABLE (simplest)
 
static void batchSwaleFlux (LIDGroupSoA &g, double rainfall, double evap_rate, double dt)
 Batch vegetative swale flux rates — VECTORISABLE.
 
static void batchGreenRoofFlux (LIDGroupSoA &g, double rainfall, double evap_rate, double dt)
 Batch green roof flux rates — VECTORISABLE.
 
static void batchInfilTrenchFlux (LIDGroupSoA &g, double rainfall, double evap_rate, double dt)
 
static void batchPavementFlux (LIDGroupSoA &g, double rainfall, double evap_rate, double dt)
 Batch permeable pavement flux rates — VECTORISABLE.
 
static void batchRoofDisconFlux (LIDGroupSoA &g, double rainfall, double evap_rate, double dt)
 Batch roof disconnection flux rates — VECTORISABLE.
 
static void batchSwaleModPuls (LIDGroupSoA &g, double rainfall, double evap_rate, double dt)
 

Member Function Documentation

◆ batchBarrelFlux()

void openswmm::lid::LIDSolver::batchBarrelFlux ( LIDGroupSoA g,
double  rainfall,
double  dt 
)
static

Batch rain barrel flux rates — VECTORISABLE (simplest)

Here is the caller graph for this function:

◆ batchBioCellFlux()

void openswmm::lid::LIDSolver::batchBioCellFlux ( LIDGroupSoA g,
double  rainfall,
double  evap_rate,
double  dt 
)
static

Batch bio-cell flux rates — VECTORISABLE.

Here is the caller graph for this function:

◆ batchGreenRoofFlux()

void openswmm::lid::LIDSolver::batchGreenRoofFlux ( LIDGroupSoA g,
double  rainfall,
double  evap_rate,
double  dt 
)
static

Batch green roof flux rates — VECTORISABLE.

Here is the caller graph for this function:

◆ batchInfilTrenchFlux()

void openswmm::lid::LIDSolver::batchInfilTrenchFlux ( LIDGroupSoA g,
double  rainfall,
double  evap_rate,
double  dt 
)
static

Batch infiltration trench flux rates — VECTORISABLE Surface drains directly to storage (no soil layer), matching legacy trenchFluxRates().

Here is the caller graph for this function:

◆ batchPavementFlux()

void openswmm::lid::LIDSolver::batchPavementFlux ( LIDGroupSoA g,
double  rainfall,
double  evap_rate,
double  dt 
)
static

Batch permeable pavement flux rates — VECTORISABLE.

Here is the caller graph for this function:

◆ batchRoofDisconFlux()

void openswmm::lid::LIDSolver::batchRoofDisconFlux ( LIDGroupSoA g,
double  rainfall,
double  evap_rate,
double  dt 
)
static

Batch roof disconnection flux rates — VECTORISABLE.

Here is the caller graph for this function:

◆ batchSwaleFlux()

void openswmm::lid::LIDSolver::batchSwaleFlux ( LIDGroupSoA g,
double  rainfall,
double  evap_rate,
double  dt 
)
static

Batch vegetative swale flux rates — VECTORISABLE.

◆ batchSwaleModPuls()

void openswmm::lid::LIDSolver::batchSwaleModPuls ( LIDGroupSoA g,
double  rainfall,
double  evap_rate,
double  dt 
)
static

Batch Modified Puls solver for swale (omega=0.5, iterative). Computes flux rates and iterates until convergence.

Here is the caller graph for this function:

◆ execute()

void openswmm::lid::LIDSolver::execute ( SimulationContext ctx,
double  dt,
double  rainfall,
double  evap_rate 
)

Compute LID performance for all units (batch by type).

For each LID type group:

  1. Gather inputs (rainfall, evap, inflow from impervious area)
  2. Batch flux-rate computation (type-specific, vectorisable)
  3. Batch Euler integration of layer depths
  4. Scatter outputs to subcatchment runoff totals
Parameters
ctxSimulation context.
dtTimestep (seconds).
rainfallRainfall rate (ft/sec).
evap_rateEvaporation rate (ft/sec).
Here is the call graph for this function:

◆ group() [1/2]

LIDGroupSoA & openswmm::lid::LIDSolver::group ( int  type_index)
inline

Access a type group (for testing or external queries).

◆ group() [2/2]

const LIDGroupSoA & openswmm::lid::LIDSolver::group ( int  type_index) const
inline

◆ init()

void openswmm::lid::LIDSolver::init ( SimulationContext ctx)
Here is the call graph for this function:

◆ numGroups()

int openswmm::lid::LIDSolver::numGroups ( ) const
inline

The documentation for this class was generated from the following files: