33 static const std::array<HeatProperty, 16>
fields = {
34 {{
"albedo",
"Water albedo", 0, 1},
35 {
"shade",
"Shade factor", 0, 1},
36 {
"sky_view",
"Sky view", 0, 1},
37 {
"emiss_water",
"Water emissivity", 0, 1},
38 {
"emiss_landcover",
"Land-cover emissivity", 0, 1},
39 {
"landcover_temperature",
"Land-cover temperature (°C)",
40 -std::numeric_limits<double>::max(), std::numeric_limits<double>::max()},
41 {
"thermal_diffusivity",
"Bed thermal diffusivity (m²/s)",
42 std::numeric_limits<double>::denorm_min(), std::numeric_limits<double>::max()},
43 {
"solute_diffusivity",
"Bed solute diffusivity (m²/s)", 0,
44 std::numeric_limits<double>::max()},
45 {
"bed_thickness",
"Bed thickness (m)", std::numeric_limits<double>::denorm_min(),
46 std::numeric_limits<double>::max()},
47 {
"ground_depth",
"Deep-ground depth (m)", std::numeric_limits<double>::denorm_min(),
48 std::numeric_limits<double>::max()},
49 {
"ground_temperature",
"Ground temperature (°C)", -std::numeric_limits<double>::max(),
50 std::numeric_limits<double>::max()},
51 {
"hyporheic_velocity",
"Hyporheic velocity (m/s)", 0, std::numeric_limits<double>::max()},
52 {
"sediment_density",
"Sediment density (kg/m³)", std::numeric_limits<double>::denorm_min(),
53 std::numeric_limits<double>::max()},
54 {
"sediment_specific_heat",
"Sediment specific heat (J/kg/K)",
55 std::numeric_limits<double>::denorm_min(), std::numeric_limits<double>::max()},
56 {
"mesh_porosity",
"Mesh-bed porosity (0–1)", 0, 1},
57 {
"ground_source",
"Ground heat source mode (0 prescribed, 1 mesh contacts)", 0, 1}}};
QMap< int, QVector< OpenSWMM::Render::AttributeField > > fields
Local keys, grouped by category.
Definition extensionattributes.cpp:35
bool heatPropertyValueValid(int attr, double value)
Apply shared refuse-instead-of-clamp validation for thermal overrides.
Definition heatproperties.h:87
const std::array< HeatProperty, 16 > & heatProperties()
Access the shared sixteen thermal override definitions in SWMM_HeatAttr ordinal order.
Definition heatproperties.h:31