64#ifndef OPENSWMM_ENGINE_TRANSPORT_ARD_ENGINE_HPP
65#define OPENSWMM_ENGINE_TRANSPORT_ARD_ENGINE_HPP
116 const std::vector<std::string>&
warnings() const noexcept {
return warnings_; }
134 const std::vector<ChannelThermalIncrement>&);
137 const std::vector<ChannelSpeciesIncrement>&);
169 std::vector<double> face_q_;
174 std::vector<double> node_mass_;
175 std::vector<double> node_vol_;
185 std::vector<double> cell_src_vol_;
186 std::vector<double> cell_src_mass_;
187 bool has_vj_src_ =
false;
190 std::vector<double> f_mass_, f_sstar_, f_phi_l_, f_phi_r_, f_phi_flux_, cell_slope_, lo_flux_,
191 anti_flux_, td_, anew_, rplus_, rminus_, cell_u_;
192 std::vector<fv::kernels::FaceState> f_state_l_, f_state_r_;
193 std::vector<fv::kernels::FaceFlux> f_flux_;
194 std::vector<char> cell_active_;
195 std::vector<int> active_faces_;
202 std::vector<int> bc_node_, bc_srow_, bc_ts_;
203 std::vector<double> bc_value_, bc_now_;
204 std::vector<int> src_crow_, src_srow_, src_ts_;
205 std::vector<double> src_value_, src_len_, src_now_;
210 bool disp_active_ =
false;
212 double disp_global_ft_ = 0.0;
213 std::vector<double> conduit_disp_ft_;
214 std::vector<double> cell_disp_;
222 std::ofstream detail_out_;
223 bool detail_active_ =
false;
224 double detail_time_s_ = 0.0;
246 int cellLink(std::size_t cell)
const noexcept;
254 std::vector<std::string> warnings_;
255 bool initialized_ =
false;
256 bool warned_cfl_clamp_ =
false;
Thermal state and geometry associated with routed channels.
Single-source scalar kernels for the explicit FV 1D network solver.
SoA storage for the 1D finite-volume network mesh and its state.
Definition ArdEngine.hpp:81
void step(SimulationContext &ctx, double dt)
One transport step over the routing step dt.
Definition ArdEngine.cpp:1404
bool initialized() const noexcept
Read successful mesh/state initialization flag.
Definition ArdEngine.hpp:105
void restoreCheckpointState(const std::string &, SimulationContext &)
Decode completed ARD state into a fresh staging owner against compatible context.
Definition ArdEngine.cpp:2157
std::string applyThermalIncrements(SimulationContext &, const std::vector< ChannelThermalIncrement > &)
Add validated per-cell signed temperature increments then publish all families.
Definition ArdEngine.cpp:111
std::string checkpointState() const
Export completed ARD numerical state without serializing live diagnostic writer.
Definition ArdEngine.cpp:2128
const std::vector< std::string > & warnings() const noexcept
Borrow initialization diagnostics retained by this transport owner.
Definition ArdEngine.hpp:116
bool init(SimulationContext &ctx)
Build the transport mesh and size all state; call once after the model is fully resolved (Router::ini...
Definition ArdEngine.cpp:265
std::vector< ChannelThermalRegion > thermalRegions() const
Export wet transport-cell thermal regions and their SI geometry.
Definition ArdEngine.cpp:65
std::string applySpeciesIncrements(SimulationContext &, const std::vector< ChannelSpeciesIncrement > &)
Validate unique cell species deltas then apply nonthermal rows and republish.
Definition ArdEngine.cpp:170
void absorbTreatedNodeConc(SimulationContext &ctx)
E5b treatment interop: absorb treated node concentrations back into the node stores.
Definition ArdEngine.cpp:1542
std::vector< double > totalMass(const SimulationContext &ctx) const
Sum represented inventory over cells and physical node stores for every carried row.
Definition ArdEngine.cpp:2080
std::vector< ChannelSpeciesRegion > speciesRegions(const SimulationContext &) const
Export carried row concentrations over available wet thermal transport-cell regions.
Definition ArdEngine.cpp:134
Definition ExplicitFvSolver.hpp:53
Definition ExchangeLaw.hpp:60
Central, reentrant simulation context.
Definition SimulationContext.hpp:390
SoA mesh geometry and topology for the FV network solver.
Definition NetworkMeshData.hpp:123
Mutable solver state — the conserved variables and the node volumes.
Definition NetworkMeshData.hpp:519