26#ifndef OPENSWMM_ENGINE_QUALITY_SURFACE_SPECIES_KERNEL_HPP
27#define OPENSWMM_ENGINE_QUALITY_SURFACE_SPECIES_KERNEL_HPP
45 const std::vector<landuse::BuildupParams>*
bu_params =
nullptr;
46 const std::vector<landuse::WashoffParams>*
wo_params =
nullptr;
48 std::vector<double>*
conc =
nullptr;
58 const std::vector<double>*
mcf =
nullptr;
59 const std::vector<double>*
c_rain =
nullptr;
62 const std::vector<double>*
co_frac =
nullptr;
73 const std::vector<unsigned char>*
sweep_now =
nullptr;
84 std::size_t
bu_idx(
int sc,
int lu,
int s)
const noexcept {
85 return static_cast<std::size_t
>(sc) *
static_cast<std::size_t
>(
nlu *
n) +
86 static_cast<std::size_t
>(lu) *
static_cast<std::size_t
>(
n) +
87 static_cast<std::size_t
>(s);
101 const std::vector<double>& lid_infil_vol)
noexcept;
Pollutant buildup and washoff per land use — batch SoA.
Definition SurfaceSpeciesKernel.cpp:23
void bookPostLid(SimulationContext &ctx, Block &b, double dt_runoff, const std::vector< double > &lid_infil_vol) noexcept
Book one accepted family's post-LID losses and delivered runoff load using pre-LID concentration.
Definition SurfaceSpeciesKernel.cpp:804
void step(SimulationContext &ctx, Block &b, double dt_runoff, double old_runoff_time) noexcept
Advance one species family's buildup/sweeping/washoff and pre-LID complete-mix concentration.
Definition SurfaceSpeciesKernel.cpp:58
Definition ExchangeLaw.hpp:60
Central, reentrant simulation context.
Definition SimulationContext.hpp:390
Definition SurfaceSpeciesKernel.hpp:42
const std::vector< double > * ponded_reacted_mass
Definition SurfaceSpeciesKernel.hpp:52
std::vector< double > * led_wet_deposition
Definition SurfaceSpeciesKernel.hpp:65
std::vector< double > * led_ponded_lost
Definition SurfaceSpeciesKernel.hpp:70
const std::vector< double > * co_frac
[s] or null
Definition SurfaceSpeciesKernel.hpp:62
const std::vector< bool > * snow_only
[s]
Definition SurfaceSpeciesKernel.hpp:60
std::vector< double > * ponded_qual
[sc*n + s], concentration mass
Definition SurfaceSpeciesKernel.hpp:55
const std::vector< int > * co_pollut
[s] or null
Definition SurfaceSpeciesKernel.hpp:61
std::vector< double > * conc
Definition SurfaceSpeciesKernel.hpp:48
std::vector< double > * led_sweeping
Definition SurfaceSpeciesKernel.hpp:69
std::vector< double > * buildup
[(sc*nlu + lu)*n + s], per normalizer unit
Definition SurfaceSpeciesKernel.hpp:47
std::vector< double > * led_runoff_load
Definition SurfaceSpeciesKernel.hpp:68
const std::vector< unsigned char > * sweep_now
Definition SurfaceSpeciesKernel.hpp:73
const std::vector< uint8_t > * lid_reactor_mask
Definition SurfaceSpeciesKernel.hpp:54
std::vector< double > * runon_qual_rate
[sc*n + s], concentration mass / s
Definition SurfaceSpeciesKernel.hpp:56
const std::vector< landuse::BuildupParams > * bu_params
[lu*n + s]
Definition SurfaceSpeciesKernel.hpp:45
const std::vector< landuse::WashoffParams > * wo_params
[lu*n + s]
Definition SurfaceSpeciesKernel.hpp:46
std::vector< double > * total_load
[sc*n + s], user mass
Definition SurfaceSpeciesKernel.hpp:57
std::vector< double > * led_infil_loss
Definition SurfaceSpeciesKernel.hpp:67
const std::vector< double > * mcf
[s] concentration mass -> user mass
Definition SurfaceSpeciesKernel.hpp:58
const std::vector< double > * c_rain
[s] rainfall concentration
Definition SurfaceSpeciesKernel.hpp:59
const std::vector< uint8_t > * ponded_reactor_mask
Definition SurfaceSpeciesKernel.hpp:53
int nlu
land uses
Definition SurfaceSpeciesKernel.hpp:44
std::vector< double > * led_surface_buildup
Definition SurfaceSpeciesKernel.hpp:64
int n
species in the family
Definition SurfaceSpeciesKernel.hpp:43
const std::vector< double > * sweep_removal
Definition SurfaceSpeciesKernel.hpp:74
std::size_t bu_idx(int sc, int lu, int s) const noexcept
Flatten a prepared subcatchment/landuse/species buildup coordinate.
Definition SurfaceSpeciesKernel.hpp:84
std::vector< double > * led_bmp_removal
Definition SurfaceSpeciesKernel.hpp:66