53#ifndef OPENSWMM_ENGINE_TRANSPORT_REACTION_INTEGRATOR_HPP
54#define OPENSWMM_ENGINE_TRANSPORT_REACTION_INTEGRATOR_HPP
78 bool initialized() const noexcept {
return n_ > 0 || terms_.capacity() > 0; }
83 std::vector<double> terms_;
84 std::vector<double> y_, y0_, ytmp_, rates_, err_;
85 std::vector<double> k1_, k2_, k3_, k4_, k5_, k6_;
86 std::vector<double> jac_, lu_;
87 std::vector<int> piv_;
88 std::vector<int> rate_idx_, equil_idx_, formula_idx_;
89 std::vector<double> res_, res2_, dy_;
90 std::vector<double> grp_out_;
98 bool jac_valid_ =
false;
100 bool lu_valid_ =
false;
101 double lu_scale_ = 0.0;
119 const double* pollutants =
nullptr);
Multispecies reaction system data (EPANET-MSX conventions) — SoA, hot/cold split per LARD plan §16 D-...
Definition ReactionIntegrator.hpp:104
static RxStepReport step(const ReactionData &rx, bool tank, double dt, double *species, double *hydvar, RxWorkspace &ws, const double *pollutants=nullptr)
One reaction step on one element's local species block.
Definition ReactionIntegrator.cpp:195
Definition ReactionIntegrator.hpp:75
friend class ReactionIntegrator
Definition ReactionIntegrator.hpp:81
void init(const ReactionData &rx)
Definition ReactionIntegrator.cpp:171
bool initialized() const noexcept
Definition ReactionIntegrator.hpp:78
Definition ExplicitFvSolver.hpp:52
Definition ReactionData.hpp:56
Definition ReactionIntegrator.hpp:66
int substeps
RATE substeps actually taken.
Definition ReactionIntegrator.hpp:68
bool ok
Definition ReactionIntegrator.hpp:67
std::string error
set when !ok
Definition ReactionIntegrator.hpp:70
int newton_iters
EQUIL + implicit-solver Newton iterations.
Definition ReactionIntegrator.hpp:69