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

#include <Landuse.hpp>

Collaboration diagram for openswmm::landuse::LanduseSolver:

Public Member Functions

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.
 

Public Attributes

std::vector< BuildupParamsbuildup_params
 Per (landuse × pollutant) parameters. Index: [lu * n_pollutants + p].
 
std::vector< WashoffParamswashoff_params
 
int n_landuses_ = 0
 
int n_pollutants_ = 0
 

Member Function Documentation

◆ 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):

  1. Convert current buildup to equivalent days (inverse function)
  2. Add timestep: days += dt / 86400
  3. 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 
)

Member Data Documentation

◆ 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: