51#ifndef OPENSWMM_ENGINE_TRANSPORT_REACTION_EXPRESSION_HPP
52#define OPENSWMM_ENGINE_TRANSPORT_REACTION_EXPRESSION_HPP
68using openswmm::RxToken;
69using openswmm::RxExprSpan;
76 const std::vector<std::string>*
species =
nullptr;
77 const std::vector<std::string>*
coefs =
nullptr;
78 const std::vector<std::string>*
terms =
nullptr;
103 std::vector<RxToken>& pool,
RxExprSpan& out,
int& error_col);
POD reaction-VM instruction + span types (phase R2, D-L3 flat pool). Data-layer header: no dependenci...
Definition ExplicitFvSolver.hpp:53
int reactionHydVarCount()
Read number of declared hydraulic/thermal/groundwater expression variables.
Definition ReactionExpression.cpp:724
std::string unpopulatedHydVarDiagnostic(const std::string &src, const std::vector< RxToken > &pool, const RxExprSpan &span, int &error_col)
Report first compiled hydraulic variable not in the network-populated range.
Definition ReactionExpression.cpp:826
bool reactionFunctionInfo(int idx, const char **name, int *arity)
Read name and argument count of one supported expression function.
Definition ReactionExpression.cpp:709
std::string reactionContextDiagnostic(const ReactionData &rx, const std::vector< RxToken > &pool, const RxExprSpan &span, int context)
Recursively reject hydraulic/species/pollutant references unavailable in one reactor context.
Definition ReactionExpression.cpp:763
bool reactionHydVarInfo(int idx, const char **name, const char **description)
Read canonical variable name and description including its declared units/support.
Definition ReactionExpression.cpp:737
double evalReactionExpression(const std::vector< RxToken > &pool, const RxExprSpan &span, const RxEvalEnv &env) noexcept
Evaluate a validated compiled reaction span with stack-local scratch.
Definition ReactionExpression.cpp:591
bool reactionHydVarPopulated(int idx)
Test the network-quality variable range currently populated by native routing.
Definition ReactionExpression.cpp:809
int reactionFunctionCount()
Read number of supported compiled scalar function entries.
Definition ReactionExpression.cpp:697
std::string compileReactionExpression(const std::string &src, const RxSymbols &symbols, std::vector< RxToken > &pool, RxExprSpan &out, int &error_col)
Compile an infix scalar reaction expression into appended stack-machine tokens.
Definition ReactionExpression.cpp:294
Definition ExchangeLaw.hpp:60
constexpr int kRxMaxStackDepth
Definition ReactionTokens.hpp:102
RxHydVar
Definition ReactionTokens.hpp:41
Definition ReactionData.hpp:58
Compiled expression = span into the shared pool. len 0 ⇒ no expression.
Definition ReactionTokens.hpp:95
Evaluation environment: pre-gathered pointers, no lookups.
Definition ReactionExpression.hpp:88
const double * pollutants
element pollutant conc (R4, read-only)
Definition ReactionExpression.hpp:93
const double * coefs
coefficient values
Definition ReactionExpression.hpp:90
const double * species
local species concentrations
Definition ReactionExpression.hpp:89
const double * terms
term values (evaluated in-order)
Definition ReactionExpression.hpp:91
const double * hydvar
RxHydVar::COUNT_ entries.
Definition ReactionExpression.hpp:92
Definition ReactionExpression.hpp:75
const std::vector< std::string > * coefs
Definition ReactionExpression.hpp:77
const std::vector< std::string > * pollutants
Definition ReactionExpression.hpp:83
const std::vector< std::string > * terms
Definition ReactionExpression.hpp:78
const std::vector< std::string > * species
local slots
Definition ReactionExpression.hpp:76
int max_term
forward-only rule: terms below this index only
Definition ReactionExpression.hpp:84