OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
HeatLid.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2//
3// Copyright 2026 Caleb Buahin
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS,
13// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14// See the License for the specific language governing permissions and
15// limitations under the License.
16
68
69#ifndef OPENSWMM_ENGINE_TRANSPORT_HEAT_LID_HPP
70#define OPENSWMM_ENGINE_TRANSPORT_HEAT_LID_HPP
71
72#include <cstddef>
73
74namespace openswmm {
76}
77namespace openswmm::lid {
78class LIDSolver;
79struct LIDGroupSoA;
80}
81
82namespace openswmm::transport {
83
87void initLidLayerTemperature(SimulationContext& ctx, const lid::LIDSolver& solver);
88
93void setLidInflowTemperature(SimulationContext& ctx, int type_index, int unit, int subcatch,
94 double rain_rate, double q_imperv, double q_perv, double q_runon,
95 double lid_area);
96
101void routeLidLayerTemperature(SimulationContext& ctx, const lid::LIDSolver& solver, double dt);
102
111double lidLayerHeatCapacity(const SimulationContext& ctx, const lid::LIDGroupSoA& g,
112 std::size_t unit, int layer) noexcept;
113
114} // namespace openswmm::transport
115
116#endif // OPENSWMM_ENGINE_TRANSPORT_HEAT_LID_HPP
Definition LID.hpp:316
Definition LID.cpp:39
Definition ExplicitFvSolver.hpp:53
void initLidLayerTemperature(SimulationContext &ctx, const lid::LIDSolver &solver)
Size shared layer scalar state and seed all conventional-LID temperatures.
Definition HeatLid.cpp:214
void setLidInflowTemperature(SimulationContext &ctx, int type_index, int unit, int subcatch, double rain_rate, double q_imperv, double q_perv, double q_runon, double lid_area)
Set one LID unit's incoming degC from rainfall and captured/run-on surface water.
Definition HeatLid.cpp:261
void routeLidLayerTemperature(SimulationContext &ctx, const lid::LIDSolver &solver, double dt)
Mix accepted layer inflows then solve optional LID heat conduction/atmospheric exchange.
Definition HeatLid.cpp:313
double lidLayerHeatCapacity(const SimulationContext &ctx, const lid::LIDGroupSoA &g, std::size_t unit, int layer) noexcept
Compute current areal thermal capacity of a conventional-LID layer.
Definition HeatLid.cpp:191
Definition ExchangeLaw.hpp:60
Central, reentrant simulation context.
Definition SimulationContext.hpp:390
Definition LID.hpp:128