42#ifndef OPENSWMM_QUALITY_ROUTING_HPP
43#define OPENSWMM_QUALITY_ROUTING_HPP
151 void init(
int n_nodes,
int n_links,
int n_pollutants);
233 int n_pollutants_ = 0;
238 std::vector<double> qual_vol_lat_;
243 std::vector<double> qual_vol_lat_neg_;
Definition FvQualityTransport.hpp:8
Definition QualityRouting.hpp:149
void addWetWeatherLoads(SimulationContext &ctx, double dt)
Add subcatchment washoff quality loads to node inflows.
Definition QualityRouting.cpp:1006
void updateLinkQuality(SimulationContext &ctx, double dt)
Publish link pollutant concentration using shared legacy conduit mixing rules.
Definition QualityRouting.cpp:1818
std::vector< double > fvRetainedPollutantMass(const SimulationContext &ctx) const
Definition QualityRouting.hpp:171
void init(int n_nodes, int n_links, int n_pollutants)
Set the solver's pollutant row count for subsequent routing/assembly.
Definition QualityRouting.cpp:410
void addExtInflowLoads(SimulationContext &ctx, double dt)
Add direct external inflow ([INFLOWS] CONCEN/MASS) pollutant loads, and the direct inflow's water,...
Definition QualityRouting.cpp:708
void addQualityOnlyInflows(SimulationContext &ctx, double dt)
review D2 + gaining conduits
Definition QualityRouting.cpp:440
void addCouplingLoads(SimulationContext &ctx, double dt)
Add accepted 2D-to-node coupling carrier volumes, scalar numerators and pollutant rates.
Definition QualityRouting.cpp:635
bool fvTransportAccepted() const noexcept
Definition QualityRouting.hpp:167
FvTransportWater & fvWater() noexcept
Definition QualityRouting.hpp:166
bool hasFvRetainedDryMass() const noexcept
Definition QualityRouting.hpp:168
void beginFvWindow() noexcept
Definition QualityRouting.hpp:173
std::vector< double > fvRetainedSpeciesMass(const SimulationContext &ctx) const
Definition QualityRouting.hpp:172
std::string fvDryRestartState(const SimulationContext &ctx) const
Definition QualityRouting.hpp:169
void applyTreatment(SimulationContext &ctx, double dt, bool full_inflow=true)
Apply [TREATMENT] at every node that has one.
Definition QualityRouting.cpp:2003
void execute(SimulationContext &ctx, double dt)
Execute one quality routing timestep.
Definition QualityRouting.cpp:820
void assembleExternalLoads(SimulationContext &ctx, double dt)
Stage 1 of execute() only: reset the assembly arrays and run the external-load adders (runoff/LID,...
Definition QualityRouting.cpp:505
std::string restoreFvDryRestart(SimulationContext &ctx, const std::string &blob, bool apply)
Definition QualityRouting.hpp:170
Definition ConservativeMixing.cpp:8
bool linkIsDry(const SimulationContext &ctx, int link)
Test the accepted conduit water/depth effective-zero thresholds.
Definition QualityRouting.cpp:130
constexpr double ZERO_VOLUME
1 liter in ft3
Definition QualityRouting.hpp:58
constexpr double LEGACY_ZERO
Definition QualityRouting.hpp:64
double conduitMixingInflow(const SimulationContext &ctx, int link, double dt)
Calculate a conduit quality mixing inflow from accepted hydraulic balance.
Definition QualityRouting.cpp:90
bool nodeIsReactor(const SimulationContext &ctx, int node)
Select storage or retained-water node mixing.
Definition QualityRouting.cpp:145
constexpr double ZERO_DEPTH
Definition QualityRouting.hpp:59
double storageEvapFactor(const SimulationContext &ctx, int node)
Calculate storage concentration increase from non-LID evaporation.
Definition QualityRouting.cpp:165
void updateUntreatedStorageHrt(SimulationContext &ctx, double dt)
Advance residence time only for untreated storage nodes under active native reactions.
Definition QualityRouting.cpp:204
bool linkTakesUpstreamValue(const SimulationContext &ctx, int link)
Test whether a link has no mixed conduit water pool.
Definition QualityRouting.cpp:74
void applyNodeTreatment(SimulationContext &ctx, int j, double dt, double q_raw, const double *cin)
Resolve one node's compiled co-treatment laws and book accepted pollutant removal.
Definition QualityRouting.cpp:2078
bool nodeIsDry(const SimulationContext &ctx, int node, double q_in)
Test node effective dryness only when mixing inflow is negligible.
Definition QualityRouting.cpp:236
Definition ExchangeLaw.hpp:60
Central, reentrant simulation context.
Definition SimulationContext.hpp:390
Definition FvTransportWater.hpp:7
MixingWater water
Definition FvTransportWater.hpp:8