OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
MsxLidReactions.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2
11
12#pragma once
13#include <vector>
14namespace openswmm {
16namespace lid {
17class LIDSolver;
18}
19namespace msxlid {
20void initialize(SimulationContext&);
21void initializeUnits(SimulationContext&, const lid::LIDSolver&);
22void routeUnits(SimulationContext&, const lid::LIDSolver&, double dt);
23void publishUnits(SimulationContext&, double dt);
24const double* drainValues(const SimulationContext&, int type, int unit, int control);
25void prepareNodes(SimulationContext&, double dt);
26void reactNodes(SimulationContext&, double dt);
27double outlet(const SimulationContext&, int node, int link, int species, double fallback);
28double receive(SimulationContext&, int node, int link, double water, int species, double mass,
29 double dt);
30double heldMass(const SimulationContext&, int node, int species);
31double mobileWater(const SimulationContext&, int node, double fallback);
32bool reactedSubcatchment(const SimulationContext&, int subcatchment);
33bool reactPool(SimulationContext&, int control, int layer, double volume, double* mass, double dt,
34 double temperature, std::vector<double>& reacted, std::vector<double>& clamped);
35} // namespace msxlid
36} // namespace openswmm
Definition LID.hpp:316
Definition LID.cpp:39
Definition MsxLidReactions.cpp:24
double heldMass(const SimulationContext &c, int node, int species)
Sum one node's held layer inventory for a reaction species.
Definition MsxLidReactions.cpp:219
void reactNodes(SimulationContext &c, double dt)
React native LID-node held layer pools and weighted mobile water portions once per interval.
Definition MsxLidReactions.cpp:439
void publishUnits(SimulationContext &, double dt)
Publish conventional reactive LID surface export as accepted subcatchment runoff concentration.
Definition MsxLidUnits.cpp:274
void prepareNodes(SimulationContext &c, double dt)
Replay accepted native LID water transfers into layer/mobile species inventories before routing.
Definition MsxLidReactions.cpp:261
bool reactedSubcatchment(const SimulationContext &c, int sc)
Test the prepared conventional-LID reactive subcatchment mask.
Definition MsxLidReactions.cpp:507
void initialize(SimulationContext &c)
Ensure opted-in native LID-node layer species stores exist at current seed phase.
Definition MsxLidReactions.cpp:183
double outlet(const SimulationContext &c, int node, int link, int species, double fallback)
Read a prepared node-layer outlet concentration for one link/species.
Definition MsxLidReactions.cpp:382
void initializeUnits(SimulationContext &, const lid::LIDSolver &)
Initialize conventional reactive LID native species pools and full-coverage ownership mask.
Definition MsxLidUnits.cpp:64
void routeUnits(SimulationContext &, const lid::LIDSolver &, double dt)
Route/react native species through one accepted conventional LID hydraulic interval.
Definition MsxLidUnits.cpp:145
bool reactPool(SimulationContext &c, int control, int layer, double volume, double *mass, double dt, double temp, std::vector< double > &reacted, std::vector< double > &clamped)
React one finite native LID water pool through scoped compiled species laws.
Definition MsxLidReactions.cpp:115
double mobileWater(const SimulationContext &c, int node, double fallback)
Read the retained native LID-node mobile water history with caller fallback.
Definition MsxLidReactions.cpp:237
double receive(SimulationContext &c, int node, int link, double water, int species, double rate, double dt)
Capture an accepted incoming link native mass-rate share into the first matching LID port.
Definition MsxLidReactions.cpp:410
const double * drainValues(const SimulationContext &, int type, int unit, int control)
Borrow the prepared conventional reactive LID drain concentration tuple.
Definition MsxLidUnits.cpp:300
Definition ExchangeLaw.hpp:60
Central, reentrant simulation context.
Definition SimulationContext.hpp:390