#include <Controls.hpp>
◆ addExpression()
| int openswmm::controls::ControlEngine::addExpression |
( |
const std::string & |
name, |
|
|
const std::string & |
formula |
|
) |
| |
◆ addNamedVariable()
| void openswmm::controls::ControlEngine::addNamedVariable |
( |
const std::string & |
name, |
|
|
ConditionVar |
var, |
|
|
int |
idx |
|
) |
| |
◆ batchEvaluateGroup()
| void openswmm::controls::ControlEngine::batchEvaluateGroup |
( |
PremiseSoA & |
group, |
|
|
const SimulationContext & |
ctx, |
|
|
double |
current_time, |
|
|
double |
half_step |
|
) |
| |
Batch evaluate all premises of one variable type.
◆ buildPremiseSoA()
| void openswmm::controls::ControlEngine::buildPremiseSoA |
( |
| ) |
|
Build SoA index from rules. Called once at init().
◆ evaluate()
| int openswmm::controls::ControlEngine::evaluate |
( |
SimulationContext & |
ctx, |
|
|
double |
current_time, |
|
|
double |
dt |
|
) |
| |
Evaluate all control rules and set link target settings.
Implements:
- Short-circuit AND evaluation
- Time-aware EQ/NE comparison with half-step tolerance
- Priority-based action deduplication per link
- Curve/timeseries/PID modulated control
- ControlValue tracking for modulated actions
- Parameters
-
| ctx | Simulation context. |
| current_time | Current simulation time (seconds). |
| dt | Routing timestep (seconds). |
- Returns
- Number of setting changes made.
◆ init()
| void openswmm::controls::ControlEngine::init |
( |
const std::vector< Rule > & |
rules | ) |
|
◆ parseRuleText()
| int openswmm::controls::ControlEngine::parseRuleText |
( |
const std::string & |
text, |
|
|
SimulationContext & |
ctx |
|
) |
| |
◆ rules()
| std::vector< Rule > & openswmm::controls::ControlEngine::rules |
( |
| ) |
|
|
inline |
The documentation for this class was generated from the following files:
- /home/runner/work/openswmm.engine/openswmm.engine/src/engine/controls/Controls.hpp
- /home/runner/work/openswmm.engine/openswmm.engine/src/engine/controls/Controls.cpp