![]() |
OpenSWMM Engine
6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
|
Treatment expression evaluator for water quality. More...
#include <string>#include <vector>Go to the source code of this file.
Classes | |
| struct | openswmm::treatment::Token |
| struct | openswmm::treatment::TreatExpr |
Namespaces | |
| namespace | openswmm |
| namespace | openswmm::treatment |
Functions | |
| int | openswmm::treatment::parse (const std::string &expr_str, TreatExpr &result) |
| Parse a treatment expression string into postfix tokens. | |
| int | openswmm::treatment::parse (const std::string &expr_str, TreatExpr &result, int(*pollut_lookup)(const std::string &name)) |
| Parse with pollutant name resolution for co-treatment. | |
| double | openswmm::treatment::evaluate (const TreatExpr &expr, double c, double dt, double hrt, double q, double v, double d, double area=0.0) |
| Evaluate a treatment expression with given variable values. | |
| double | openswmm::treatment::evaluate (const TreatExpr &expr, double c, double dt, double hrt, double q, double v, double d, const double *cin, const double *removal, int n_pollut, double area=0.0) |
| Evaluate with co-treatment support (R_pollutant references). | |
| double | openswmm::treatment::applyTreatment (const TreatExpr &expr, double c_in, double dt, double hrt, double q, double v, double d, double area=0.0) |
| Apply treatment at a node for one pollutant. | |
Treatment expression evaluator for water quality.
Evaluates user-defined treatment expressions at nodes to modify pollutant concentrations. Expressions can reference:
Treatment expression strings have the form: "R = <expression>" — removal equation "C = <expression>" — concentration equation
Expressions are parsed at input time into a postfix token list using the Shunting-yard algorithm. Evaluation is a simple stack machine — vectorisable across nodes when all nodes use the same expression (batch eval with different variable values).