OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
SubsurfaceSections.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
79
80#ifndef OPENSWMM_ENGINE_2D_SUBSURFACE_SECTIONS_HPP
81#define OPENSWMM_ENGINE_2D_SUBSURFACE_SECTIONS_HPP
82
83#include "SubsurfaceData.hpp"
85
86#include <string>
87#include <vector>
88
89namespace openswmm {
91}
92
93namespace openswmm::twoD {
94
95struct MeshData;
96
98std::string parseAquiferOptionsLine(const std::vector<std::string>& tokens,
99 GwOptions& opts);
100
102std::string parseAquiferLine(const std::vector<std::string>& tokens,
103 std::vector<GwAquiferRow>& rows);
104
107std::string parseAquiferNodeLine(const std::vector<std::string>& tokens,
108 std::vector<GwNodeBed>& beds,
109 std::vector<std::string>& names);
110
113 std::vector<std::string>& node_names,
114 input::SectionRegistry& registry);
115
117GwUnitFactors gwUnitFactors(const SimulationContext& ctx) noexcept;
118
121std::vector<std::string> resolveSubsurface(SimulationContext& ctx,
122 const MeshData& mesh,
123 SubsurfaceConfig& cfg,
124 const std::vector<std::string>& names);
125
130 const std::vector<std::string>& node_names,
131 std::string& out);
132
133} // namespace openswmm::twoD
134
135#endif // OPENSWMM_ENGINE_2D_SUBSURFACE_SECTIONS_HPP
Registry that maps SWMM section tags to handler functions.
G-step 1 — state, parameters and options for the two-zone groundwater kernel (TWO_ZONE_GROUNDWATER_EX...
Definition NodeCoupling.cpp:16
std::vector< std::string > resolveSubsurface(SimulationContext &ctx, const MeshData &mesh, SubsurfaceConfig &cfg, const std::vector< std::string > &names)
Definition SubsurfaceSections.cpp:323
void writeSubsurfaceSections(const SubsurfaceConfig &cfg, const std::vector< std::string > &node_names, std::string &out)
Definition SubsurfaceSections.cpp:367
std::string parseAquiferNodeLine(const std::vector< std::string > &tokens, std::vector< GwNodeBed > &beds, std::vector< std::string > &names)
Definition SubsurfaceSections.cpp:247
std::string parseAquiferLine(const std::vector< std::string > &tokens, std::vector< GwAquiferRow > &rows)
One [2D_AQUIFER] line. Empty return = OK.
Definition SubsurfaceSections.cpp:173
GwUnitFactors gwUnitFactors(const SimulationContext &ctx) noexcept
The factors for this project's unit system.
Definition SubsurfaceSections.cpp:306
void registerSubsurfaceSections(SubsurfaceConfig &cfg, std::vector< std::string > &node_names, input::SectionRegistry &registry)
Register the three handlers against registry, writing into cfg.
Definition SubsurfaceSections.cpp:282
std::string parseAquiferOptionsLine(const std::vector< std::string > &tokens, GwOptions &opts)
One [2D_AQUIFER_OPTIONS] line (KEY VALUE). Empty return = OK.
Definition SubsurfaceSections.cpp:109
Definition NodeCoupling.cpp:16
Central, reentrant simulation context.
Definition SimulationContext.hpp:353
[2D_AQUIFER_OPTIONS]. Defaults are the plan's starred values.
Definition SubsurfaceData.hpp:87
Project-unit → SI multipliers for the four kinds of aquifer number.
Definition SubsurfaceData.hpp:226
SoA storage for 2D mixed triangle/quad mesh geometry and topology.
Definition MeshData.hpp:67
Everything the parser fills, before resolution onto cells.
Definition SubsurfaceData.hpp:234