40#ifndef OPENSWMM_ENGINE_INITIAL_QUALITY_SEEDS_HPP
41#define OPENSWMM_ENGINE_INITIAL_QUALITY_SEEDS_HPP
54 int idx,
double fallback) {
57 for (
int r = 0; r < iq.count(); ++r) {
58 const auto ur =
static_cast<std::size_t
>(r);
60 if ((iq.is_link[ur] != 0) != is_link)
continue;
61 if (iq.elem_idx[ur] != idx)
continue;
62 v = iq.value[ur] * 3600.0;
72 int idx,
double fallback) {
75 for (
int r = 0; r < iq.count(); ++r) {
76 const auto ur =
static_cast<std::size_t
>(r);
78 if ((iq.is_link[ur] != 0) != is_link)
continue;
79 if (iq.elem_idx[ur] != idx)
continue;
92 if (ws.hotstart_loaded)
return;
94 for (
int r = 0; r < iq.count(); ++r) {
95 const auto ur =
static_cast<std::size_t
>(r);
97 const int ei = iq.elem_idx[ur];
99 auto& arr = iq.is_link[ur] ? ws.link_age : ws.node_age;
100 if (
static_cast<std::size_t
>(ei) < arr.size())
101 arr[
static_cast<std::size_t
>(ei)] = iq.value[ur] * 3600.0;
112 for (
int r = 0; r < iq.count(); ++r) {
113 const auto ur =
static_cast<std::size_t
>(r);
115 const int ei = iq.elem_idx[ur];
116 if (ei < 0)
continue;
117 auto& arr = iq.is_link[ur] ? hs.link_temp : hs.node_temp;
118 if (
static_cast<std::size_t
>(ei) < arr.size())
119 arr[
static_cast<std::size_t
>(ei)] = iq.value[ur];
SoA store for [INITIAL_QUALITY] per-element initial concentrations.
The central, reentrant simulation context for the new engine.
Definition ExplicitFvSolver.hpp:52
double initialAgeSecondsFor(const SimulationContext &ctx, bool is_link, int idx, double fallback)
Per-element initial age (SECONDS) for one node/link, falling back to fallback (normally the INITIAL_S...
Definition InitialQualitySeeds.hpp:53
void applyInitialTempOverrides(SimulationContext &ctx)
Apply TEMPERATURE rows onto heat_state.node_temp/link_temp (degC). No-op on unsized arrays.
Definition InitialQualitySeeds.hpp:109
void applyInitialAgeOverrides(SimulationContext &ctx)
Apply WATER_AGE rows onto water_age_state.node_age/link_age (hours -> seconds). No-op when a hotstart...
Definition InitialQualitySeeds.hpp:90
double initialTempFor(const SimulationContext &ctx, bool is_link, int idx, double fallback)
Per-element initial temperature (degC) for one node/link, falling back to fallback (normally the INIT...
Definition InitialQualitySeeds.hpp:71
static constexpr int kKindWaterAge
Classified constituent kinds (see kind).
Definition InitialQualityData.hpp:49
static constexpr int kKindTemperature
TEMPERATURE (degC)
Definition InitialQualityData.hpp:50
Central, reentrant simulation context.
Definition SimulationContext.hpp:353
WaterAgeState water_age_state
Definition SimulationContext.hpp:573
InitialQualityData initial_quality
Per-element initial quality rows from [INITIAL_QUALITY].
Definition SimulationContext.hpp:688
HeatState heat_state
Definition SimulationContext.hpp:589