![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
[SOLAR_RADIATION] — site geometry and Bird atmosphere (H6a).
More...
#include <HeatData.hpp>
Public Attributes | |
| double | latitude_deg = 0.0 |
| +N. REQUIRED under COMPUTED. | |
| double | longitude_deg = 0.0 |
| +E. REQUIRED under COMPUTED. | |
| double | timezone_hours = 0.0 |
| Offset from UTC, +E (e.g. MST = -7). | |
| bool | has_latitude = false |
| Set by the parser, checked at close. | |
| bool | has_longitude = false |
| bool | has_timezone = false |
| double | elevation_m = 0.0 |
| bool | has_elevation = false |
| double | aod380 = 0.30 |
| Aerosol optical depth at 380 nm. | |
| double | aod500 = 0.20 |
| Aerosol optical depth at 500 nm. | |
| double | precip_water_cm = 1.42 |
| Precipitable water vapour, cm. | |
| double | ozone_cm = 0.34 |
| Ozone column, cm (NTP) | |
| double | ground_albedo = 0.20 |
[SOLAR_RADIATION] — site geometry and Bird atmosphere (H6a).
latitude/longitude have no usable default and the COMPUTED branch refuses without them. This is deliberate and is stricter than D-H5c's dry-element policy, which does default: a dry-element convention has a defensible default, an unstated latitude does not. ClimateState::latitude cannot stand in — it is the [TEMPERATURE] SNOWMELT field, defaults to 0, and is written only by decks carrying that line, so borrowing it would silently model equatorial noon (plan §2.5 trap 1).ClimateState::dtlong cannot stand in for longitude either: it is a solar-time correction in MINUTES carrying a sentinel (0 means "true solar time", which is not "longitude 0"). Plan §2.5 trap 2. | double openswmm::SolarConfig::aod380 = 0.30 |
Aerosol optical depth at 380 nm.
| double openswmm::SolarConfig::aod500 = 0.20 |
Aerosol optical depth at 500 nm.
| double openswmm::SolarConfig::elevation_m = 0.0 |
Site elevation, metres, for the Bird pressure term. Absent means "take the climate state's `elev`", which is the usual case.
A < 0 sentinel was the first spelling and was wrong: the parser deliberately admits elevations below sea level (the Dead Sea, the Salton Sea), and every one of them would have been silently discarded in favour of the climate value. An explicit flag cannot collide with a legal value.
| double openswmm::SolarConfig::ground_albedo = 0.20 |
Surface albedo for the sky-ground multiple-reflection term. NOT RadiativeConfig::albedo, which is the WATER's reflectance — two different surfaces, deliberately two different fields.
| bool openswmm::SolarConfig::has_elevation = false |
| bool openswmm::SolarConfig::has_latitude = false |
Set by the parser, checked at close.
| bool openswmm::SolarConfig::has_longitude = false |
| bool openswmm::SolarConfig::has_timezone = false |
Not required — 0 (UTC) is a legal answer — but an OMITTED timezone shifts the whole diurnal curve by up to 12 h, which dwarfs every other error in this module. Tracked so the parser can WARN.
| double openswmm::SolarConfig::latitude_deg = 0.0 |
+N. REQUIRED under COMPUTED.
| double openswmm::SolarConfig::longitude_deg = 0.0 |
+E. REQUIRED under COMPUTED.
| double openswmm::SolarConfig::ozone_cm = 0.34 |
Ozone column, cm (NTP)
| double openswmm::SolarConfig::precip_water_cm = 1.42 |
Precipitable water vapour, cm.
| double openswmm::SolarConfig::timezone_hours = 0.0 |
Offset from UTC, +E (e.g. MST = -7).