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,
88 const lid::LIDSolver& solver);
89
94void setLidInflowTemperature(SimulationContext& ctx, int type_index, int unit,
95 int subcatch, double rain_rate, double q_imperv,
96 double q_perv, double q_runon, double lid_area);
97
102void routeLidLayerTemperature(SimulationContext& ctx,
103 const lid::LIDSolver& solver, double dt);
104
113double lidLayerHeatCapacity(const SimulationContext& ctx,
114 const lid::LIDGroupSoA& g, std::size_t unit,
115 int layer) noexcept;
116
117} // namespace openswmm::transport
118
119#endif // OPENSWMM_ENGINE_TRANSPORT_HEAT_LID_HPP
Definition LID.hpp:215
Definition LID.cpp:35
Definition ExplicitFvSolver.hpp:52
void initLidLayerTemperature(SimulationContext &ctx, const lid::LIDSolver &solver)
Definition HeatLid.cpp:135
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)
Definition HeatLid.cpp:168
void routeLidLayerTemperature(SimulationContext &ctx, const lid::LIDSolver &solver, double dt)
Definition HeatLid.cpp:204
double lidLayerHeatCapacity(const SimulationContext &ctx, const lid::LIDGroupSoA &g, std::size_t unit, int layer) noexcept
Heat capacity of one layer, J/m²/K over the layer's footprint.
Definition HeatLid.cpp:121
Definition NodeCoupling.cpp:16
Central, reentrant simulation context.
Definition SimulationContext.hpp:353
Definition LID.hpp:83