#include <Landuse.hpp>
|
| void | init (int n_landuses, int n_pollutants) |
| |
| void | computeBuildup (SurfaceQualitySoA &sq, const double *area, const double *curb_length, double dt, int n_subcatch) |
| | Batch compute buildup for all subcatchments.
|
| |
| void | computeWashoff (SurfaceQualitySoA &sq, const double *runoff, const double *area, int n_subcatch) |
| | Batch compute washoff for all subcatchments.
|
| |
| void | applyCoPollutant (SurfaceQualitySoA &sq, const double *runoff, const double *area, const int *co_pollut, const double *co_frac, int n_subcatch) |
| | Apply co-pollutant washoff fractions.
|
| |
◆ applyCoPollutant()
| void openswmm::landuse::LanduseSolver::applyCoPollutant |
( |
SurfaceQualitySoA & |
sq, |
|
|
const double * |
runoff, |
|
|
const double * |
area, |
|
|
const int * |
co_pollut, |
|
|
const double * |
co_frac, |
|
|
int |
n_subcatch |
|
) |
| |
Apply co-pollutant washoff fractions.
After primary washoff is computed, for each pollutant p with a co-pollutant k: washoff[p] += co_frac[p] * washoff[k]. Matches legacy landuse_getCoPollutLoad().
- Parameters
-
| sq | Surface quality SoA (washoff_conc modified in-place). |
| runoff | Runoff rate per subcatchment (for mass rate conversion). |
| area | Subcatchment area. |
| co_pollut | Co-pollutant index per pollutant (-1 = none). |
| co_frac | Co-pollutant fraction per pollutant. |
| n_subcatch | Number of subcatchments. |
◆ computeBuildup()
| void openswmm::landuse::LanduseSolver::computeBuildup |
( |
SurfaceQualitySoA & |
sq, |
|
|
const double * |
area, |
|
|
const double * |
curb_length, |
|
|
double |
dt, |
|
|
int |
n_subcatch |
|
) |
| |
Batch compute buildup for all subcatchments.
For each (subcatch, pollutant):
- Convert current buildup to equivalent days (inverse function)
- Add timestep: days += dt / 86400
- Recompute buildup mass (forward function) All three steps are vectorisable (pow/exp/division).
◆ computeWashoff()
| void openswmm::landuse::LanduseSolver::computeWashoff |
( |
SurfaceQualitySoA & |
sq, |
|
|
const double * |
runoff, |
|
|
const double * |
area, |
|
|
int |
n_subcatch |
|
) |
| |
Batch compute washoff for all subcatchments.
For each (subcatch, pollutant): EMC: conc = coeff (constant — trivially vectorisable) Exponential: conc = k * Q^n * B / (Q * A) (vectorisable) Rating: conc = k * (Q*A)^(n-1) (vectorisable)
◆ init()
| void openswmm::landuse::LanduseSolver::init |
( |
int |
n_landuses, |
|
|
int |
n_pollutants |
|
) |
| |
◆ buildup_params
| std::vector<BuildupParams> openswmm::landuse::LanduseSolver::buildup_params |
Per (landuse × pollutant) parameters. Index: [lu * n_pollutants + p].
◆ n_landuses_
| int openswmm::landuse::LanduseSolver::n_landuses_ = 0 |
◆ n_pollutants_
| int openswmm::landuse::LanduseSolver::n_pollutants_ = 0 |
◆ washoff_params
| std::vector<WashoffParams> openswmm::landuse::LanduseSolver::washoff_params |
The documentation for this class was generated from the following files:
- /home/runner/work/openswmm.engine/openswmm.engine/src/engine/quality/Landuse.hpp
- /home/runner/work/openswmm.engine/openswmm.engine/src/engine/quality/Landuse.cpp