OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
openswmm::HeatConfigData Struct Reference

Parsed model.heat state (heat component, phase H1). More...

#include <HeatData.hpp>

Collaboration diagram for openswmm::HeatConfigData:

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).
 

Detailed Description

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.

Member Function Documentation

◆ source_temp()

double openswmm::HeatConfigData::source_temp ( HeatSource s,
int node ) const
inlinenoexcept

Temperature of source water entering node (°C).

Here is the caller graph for this function:

Member Data Documentation

◆ cloud

CloudConfig openswmm::HeatConfigData::cloud

[CLOUD_COVER] — consulted by BOTH the shortwave and longwave paths (plan §2.5, D-H6a-2).

◆ conduction

ConductionConfig openswmm::HeatConfigData::conduction

Parameters for the module above.

◆ configured

bool openswmm::HeatConfigData::configured = false

◆ configured_source

bool openswmm::HeatConfigData::configured_source[static_cast< int >(HeatSource::COUNT_)] = {}

Whether the user set this source explicitly (vs. taking the default).

◆ dry_temp_policy

DryTempPolicy openswmm::HeatConfigData::dry_temp_policy = DryTempPolicy::HOLD

[HEAT_FLUXES] DRY_ELEMENT_TEMPERATURE HOLD|AIR|DEFAULT (D-H5c).

◆ global_temp

double openswmm::HeatConfigData::global_temp[static_cast< int >(HeatSource::COUNT_)]
Initial value:
= {
static constexpr double kDefaultTemp
Default inlet temperature when a source has no row (°C).
Definition HeatData.hpp:380

GLOBAL inlet temperature per source, °C.

◆ kDefaultTemp

double openswmm::HeatConfigData::kDefaultTemp = 20.0
staticconstexpr

Default inlet temperature when a source has no row (°C).

◆ layer_conduction

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.

◆ node_over_node

std::vector<int> openswmm::HeatConfigData::node_over_node

node index

◆ node_over_source

std::vector<int> openswmm::HeatConfigData::node_over_source

HeatSource as int.

◆ node_over_temp

std::vector<double> openswmm::HeatConfigData::node_over_temp

°C

◆ overrides

HeatOverrideData openswmm::HeatConfigData::overrides

PE2 — per-element overrides for radiative and sediment above. Empty on every model that does not use them.

◆ radiative

RadiativeConfig openswmm::HeatConfigData::radiative

Parameters for the module above.

◆ radiative_exchange

bool openswmm::HeatConfigData::radiative_exchange = false

[HEAT_FLUXES] RADIATIVE_EXCHANGE ON (plan §2.2, phase H3). Defaults OFF for the same reason SurfaceExchange does.

◆ sediment

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.

◆ sediment_exchange

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.

◆ solar

SolarConfig openswmm::HeatConfigData::solar

[SOLAR_RADIATION] — only consulted under ShortwaveMode::COMPUTED (plan §2.5, phase H6a).

◆ surface_exchange

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.


The documentation for this struct was generated from the following file: