OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
Culvert.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
35
36#ifndef OPENSWMM_CULVERT_HPP
37#define OPENSWMM_CULVERT_HPP
38
39#include <vector>
40
41namespace openswmm {
42
44
45namespace culvert {
46
49 double K = 0.0;
50 double M = 0.0;
51 double C = 0.0;
52 double Y = 0.0;
53};
54
56CulvertCoeffs getCoeffs(int culvert_code);
57
70double getInflow(double q_proposed, double head, double y_full,
71 double a_full, double slope, int code, double& dqdh);
72
80void batchComputeInletControl(const int* link_indices, int n,
82
83} // namespace culvert
84} // namespace openswmm
85
86#endif // OPENSWMM_CULVERT_HPP
Definition Culvert.cpp:34
void batchComputeInletControl(const int *link_indices, int n, SimulationContext &ctx)
Batch compute culvert inlet control for all culvert links.
Definition Culvert.cpp:174
double getInflow(double q_proposed, double head, double y_full, double a_full, double slope, int code, double &dqdh)
Compute culvert inlet-controlled inflow.
Definition Culvert.cpp:160
CulvertCoeffs getCoeffs(int code)
Get coefficients for a culvert type code (1-57).
Definition Culvert.cpp:155
Definition NodeCoupling.cpp:16
Central, reentrant simulation context.
Definition SimulationContext.hpp:353
Culvert curve coefficients (K, M, C, Y) per type code.
Definition Culvert.hpp:48
double K
Definition Culvert.hpp:49
double Y
Definition Culvert.hpp:52
double C
Definition Culvert.hpp:51
double M
Definition Culvert.hpp:50