![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
Parsed model.heat state (heat component, phase H1).
More...
#include <HeatData.hpp>
Public Member Functions | |
| double | source_temp (HeatSource s, int node) const noexcept |
Temperature of source water entering node (°C). | |
Public Attributes | |
| bool | configured = false |
| bool | radiative_exchange = false |
| RadiativeConfig | radiative |
| Parameters for the module above. | |
| bool | surface_exchange = false |
[HEAT_FLUXES] SURFACE_EXCHANGE ON — latent + sensible exchange at the free surface (plan §2.1, phase H2). | |
| DryTempPolicy | dry_temp_policy = DryTempPolicy::HOLD |
[HEAT_FLUXES] DRY_ELEMENT_TEMPERATURE HOLD|AIR|DEFAULT (D-H5c). | |
| bool | layer_conduction = false |
| ConductionConfig | conduction |
| Parameters for the module above. | |
| bool | sediment_exchange = false |
| SedimentConfig | sediment |
| HeatOverrideData | overrides |
| SolarConfig | solar |
| CloudConfig | cloud |
| double | global_temp [static_cast< int >(HeatSource::COUNT_)] |
| GLOBAL inlet temperature per source, °C. | |
| bool | configured_source [static_cast< int >(HeatSource::COUNT_)] = {} |
| Whether the user set this source explicitly (vs. taking the default). | |
| std::vector< int > | node_over_source |
| HeatSource as int. | |
| std::vector< int > | node_over_node |
| node index | |
| std::vector< double > | node_over_temp |
| °C | |
Static Public Attributes | |
| static constexpr double | kDefaultTemp = 20.0 |
| Default inlet temperature when a source has no row (°C). | |
Parsed model.heat state (heat component, phase H1).
Mirrors WaterAgeConfigData, with one difference that matters: the default is not zero. An unset source temperature means "not configured", and 0 °C is a perfectly ordinary temperature, so a defaulted-to-zero table would silently chill every model. kDefaultTemp is the documented default inlet temperature and configured_source[] records which rows the user actually set, so a gate (and a user) can tell a deliberate 0 °C from a default.
|
inlinenoexcept |
Temperature of source water entering node (°C).
| CloudConfig openswmm::HeatConfigData::cloud |
[CLOUD_COVER] — consulted by BOTH the shortwave and longwave paths (plan §2.5, D-H6a-2).
| ConductionConfig openswmm::HeatConfigData::conduction |
Parameters for the module above.
| bool openswmm::HeatConfigData::configured = false |
| bool openswmm::HeatConfigData::configured_source[static_cast< int >(HeatSource::COUNT_)] = {} |
Whether the user set this source explicitly (vs. taking the default).
| DryTempPolicy openswmm::HeatConfigData::dry_temp_policy = DryTempPolicy::HOLD |
[HEAT_FLUXES] DRY_ELEMENT_TEMPERATURE HOLD|AIR|DEFAULT (D-H5c).
| double openswmm::HeatConfigData::global_temp[static_cast< int >(HeatSource::COUNT_)] |
GLOBAL inlet temperature per source, °C.
|
staticconstexpr |
Default inlet temperature when a source has no row (°C).
| bool openswmm::HeatConfigData::layer_conduction = false |
[HEAT_FLUXES] LAYER_CONDUCTION ON — vertical conduction between LID layers (plan §2, phase H5b, D-H5b). Defaults OFF like every other flux module, so a deck gets pure transport unless it asks for physics.
| std::vector<int> openswmm::HeatConfigData::node_over_node |
node index
| std::vector<int> openswmm::HeatConfigData::node_over_source |
HeatSource as int.
| std::vector<double> openswmm::HeatConfigData::node_over_temp |
°C
| HeatOverrideData openswmm::HeatConfigData::overrides |
PE2 — per-element overrides for radiative and sediment above. Empty on every model that does not use them.
| RadiativeConfig openswmm::HeatConfigData::radiative |
Parameters for the module above.
| bool openswmm::HeatConfigData::radiative_exchange = false |
[HEAT_FLUXES] RADIATIVE_EXCHANGE ON (plan §2.2, phase H3). Defaults OFF for the same reason SurfaceExchange does.
| SedimentConfig openswmm::HeatConfigData::sediment |
[SEDIMENT_EXCHANGE] — parameters for the module above. Deliberately a SEPARATE struct from ConductionConfig: that one describes a bioretention soil column (GWComponent, 1970/2758), this one describes streambed sediment (HTSComponent, 1670/1807). Sharing them would make one number stand for two materials.
| bool openswmm::HeatConfigData::sediment_exchange = false |
[HEAT_FLUXES] SEDIMENT_EXCHANGE ON — the bed / hyporheic transient storage zone (plan §2.3, phase H6b). Defaults OFF like every other flux module. Unlike the others it is not a surface flux: it adds a second state variable and is integrated as a coupled pair, which is why its physics lives in BedExchange.hpp rather than as another term in netFluxOut. See that header for why the earlier prediction that it would be one term was wrong.
| SolarConfig openswmm::HeatConfigData::solar |
[SOLAR_RADIATION] — only consulted under ShortwaveMode::COMPUTED (plan §2.5, phase H6a).
| bool openswmm::HeatConfigData::surface_exchange = false |
[HEAT_FLUXES] SURFACE_EXCHANGE ON — latent + sensible exchange at the free surface (plan §2.1, phase H2).
Defaults OFF so H1's pure-transport behaviour is what a deck gets unless it asks for physics, and so every existing .out stays byte-identical. Each flux module of plan §2 is independently toggleable; radiative and sediment exchange arrive with H3/H4 and their keys refuse until then.