![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
Implementation of 2D input section parsers. More...
#include "SectionHandlers2D.hpp"#include "../data/BoundaryData.hpp"#include "../data/Report2DVars.hpp"#include "../../input/InputParseUtils.hpp"#include "../../input/InputReader.hpp"#include "../../input/Tokenizer.hpp"#include "../../core/ErrorCodes.hpp"#include "../../core/SimulationContext.hpp"#include <algorithm>#include <cctype>#include <cmath>#include <cstdio>#include <cstdlib>#include <filesystem>#include <fstream>#include <sstream>#include <string_view>Namespaces | |
| namespace | openswmm |
| namespace | openswmm::twoD |
Functions | |
| std::string | openswmm::twoD::parse2DOptionsLine (const std::vector< std::string > &tokens, SolverOptions2D &opts, std::vector< std::string > *warnings=nullptr) |
| Parse a single line from the [2D_OPTIONS] section. | |
| bool | openswmm::twoD::is2DRetiredOptionKey (const std::string &key) |
True when key (case-insensitive) is a [2D_OPTIONS] parameter retired with the CVODE/ARKODE stack (D2, 2026-07-29). | |
| bool | openswmm::twoD::is2DOptionKey (const std::string &key) |
True when key (case-insensitive) is a [2D_OPTIONS] parameter accepted by parse2DOptionsLine. | |
| const std::vector< std::string > & | openswmm::twoD::report2DVarTokens () |
| Format the current value of a [2D_OPTIONS] parameter as the string token parse2DOptionsLine accepts (round-trip safe). | |
| std::string | openswmm::twoD::parseReport2DVars (const std::string &text, unsigned &mask) |
| std::string | openswmm::twoD::formatReport2DVars (unsigned mask) |
| std::string | openswmm::twoD::format2DOptionValue (const SolverOptions2D &opts, const std::string &key) |
| std::string | openswmm::twoD::format2DOptionValueEx (const SolverOptions2D &opts, const Infil2D *infil, const std::string &key) |
format2DOptionValue with the E2 infiltration keys resolved against the model's [2D_INFILTRATION*] rows: INFIL_STEP falls back to the section value, INFIL_DEFAULT_METHOD to the '*' row's method. INFILTRATION stays AUTO | YES | NO as stored. infil may be null. | |
| std::string | openswmm::twoD::format2DOptionValueEx (const SolverOptions2D &opts, const Infil2D *infil, const SubsurfaceConfig *aquifer, const std::string &key) |
As above, and additionally resolves the groundwater enables against the [2D_AQUIFER*] authoring: GROUNDWATER AUTO reports the YES|NO the kernel will actually take, and GW_ET reads the [2D_AQUIFER_OPTIONS] field that owns it. aquifer may be null. | |
| std::string | openswmm::twoD::parse2DVertexLine (const std::vector< std::string > &tokens, MeshData &mesh) |
| Parse a single line from the [2D_VERTICES] section. | |
| std::string | openswmm::twoD::parse2DTriangleLine (const std::vector< std::string > &tokens, MeshData &mesh) |
| Parse a single line from the [2D_TRIANGLES] section. | |
| std::string | openswmm::twoD::parse2DQuadLine (const std::vector< std::string > &tokens, MeshData &mesh) |
| Parse a single line from the [2D_QUADS] section. | |
| std::string | openswmm::twoD::parse2DInitialVelocityLine (const std::vector< std::string > &tokens, MeshData &mesh) |
| Parse a single line from the [2D_INITIAL_VELOCITY] section. | |
| std::string | openswmm::twoD::parse2DVertexNodeMapLine (const std::vector< std::string > &tokens, MeshData &mesh) |
| Parse a single line from the [2D_VERTEX_NODE_MAP] section. | |
| std::string | openswmm::twoD::parse2DTriangleNodeMapLine (const std::vector< std::string > &tokens, MeshData &mesh) |
| Parse a single line from the [2D_TRIANGLE_NODE_MAP] section. | |
| std::string | openswmm::twoD::parse2DBoundaryConditionsLine (const std::vector< std::string > &tokens, std::vector< SurfaceRouter2D::PendingBoundaryRow > &pending_rows) |
V-E3 — parse a single line from the [2D_BOUNDARY_CONDITIONS] section into a SurfaceRouter2D::PendingBoundaryRow appended to pending_rows. | |
| std::string | openswmm::twoD::parse2DEdgeConveyanceLine (const std::vector< std::string > &tokens, std::vector< SurfaceRouter2D::PendingEdgeConveyanceRow > &pending_rows) |
§11A — parse a single [2D_EDGE_CONVEYANCE] line. | |
| std::string | openswmm::twoD::parse2DInfiltrationOptionsLine (const std::vector< std::string > &tokens, Infil2D &infil) |
§5.5 track I — parse a single [2D_INFILTRATION_OPTIONS] line. | |
| std::string | openswmm::twoD::parse2DInfiltrationDefaultsLine (const std::vector< std::string > &tokens, Infil2D &infil) |
§5.5 track I — parse a single [2D_INFILTRATION_DEFAULTS] line. | |
| std::string | openswmm::twoD::parse2DInfiltrationLine (const std::vector< std::string > &tokens, Infil2D &infil) |
§5.5 track I — parse a single [2D_INFILTRATION] line. | |
| std::string | openswmm::twoD::parse2DInitialQualityLine (const std::vector< std::string > &tokens, std::vector< SurfaceRouter2D::PendingInitialQualityRow > &rows) |
S1/S2 — one [2D_INITIAL_QUALITY] line. Empty string = OK. | |
| std::string | openswmm::twoD::parse2DBoundaryQualityLine (const std::vector< std::string > &tokens, std::vector< SurfaceRouter2D::PendingBoundaryQualityRow > &rows) |
S2 — one [2D_BOUNDARY_QUALITY] line (TRI EDGE SPECIES CONC). Empty = OK. | |
| void | openswmm::twoD::register2DSections (MeshData &mesh, SolverOptions2D &options, std::vector< SurfaceRouter2D::PendingBoundaryRow > &pending_bc_rows, std::vector< SurfaceRouter2D::PendingEdgeConveyanceRow > &pending_ec_rows, std::vector< SurfaceRouter2D::PendingInitialQualityRow > &pending_iq_rows, std::vector< SurfaceRouter2D::PendingBoundaryQualityRow > &pending_bq_rows, input::SectionRegistry ®istry) |
| Register all 2D input section handlers with the section registry. | |
| std::string | openswmm::twoD::load2DMeshExternalFile (MeshData &mesh, SolverOptions2D &opts, std::vector< SurfaceRouter2D::PendingBoundaryRow > &pending_bc_rows, std::vector< SurfaceRouter2D::PendingEdgeConveyanceRow > &pending_ec_rows, Infil2D *infil, const std::string &mesh_file, const std::string &inp_base_dir, std::vector< std::string > *warnings=nullptr, std::vector< SurfaceRouter2D::PendingInitialQualityRow > *pending_iq_rows=nullptr, std::vector< SurfaceRouter2D::PendingBoundaryQualityRow > *pending_bq_rows=nullptr) |
| Load 2D mesh sections from an external file. | |
| void | openswmm::twoD::prescan2DUnitsHeader (const std::string &inp_path, SolverOptions2D &opts) |
Scan inp_path for a ;; UNITS: <value> comment header and set opts.mesh_units_si to true when the value names metres. | |
Implementation of 2D input section parsers.