OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
SubsurfaceSections.cpp File Reference

Parsers, resolution and writer for the [2D_AQUIFER*] sections. More...

#include "SubsurfaceSections.hpp"
#include "../../hydrology/LID.hpp"
#include "../../hydrology/LidNode.hpp"
#include "FootprintGeometry.hpp"
#include <iomanip>
#include <sstream>
#include <set>
#include "../data/MeshData.hpp"
#include "../data/SolverOptions2D.hpp"
#include <memory>
#include <array>
#include "../../core/SimulationContext.hpp"
#include "../../core/UnitConversion.hpp"
#include "../../input/InputParseUtils.hpp"
#include "../../input/Tokenizer.hpp"
#include <algorithm>
#include <cctype>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <functional>
Include dependency graph for SubsurfaceSections.cpp:

Namespaces

namespace  openswmm
 
namespace  openswmm::twoD
 

Functions

std::string openswmm::twoD::parseAquiferOptionsLine (const std::vector< std::string > &tokens, GwOptions &opts)
 Apply one aquifer authoring option without initializing a physical column.
 
std::string openswmm::twoD::parseAquiferLine (const std::vector< std::string > &tokens, std::vector< GwAquiferRow > &rows)
 Parse a scoped aquifer hydraulic authoring row into a local candidate.
 
std::string openswmm::twoD::parseAquiferNodeLine (const std::vector< std::string > &tokens, std::vector< GwNodeBed > &beds, std::vector< std::string > &names)
 Parse one named native-node aquifer bed with explicit cell or deferred location.
 
std::string openswmm::twoD::parseAquiferLinkLine (const std::vector< std::string > &tokens, std::vector< GwLinkRow > &rows, std::vector< std::string > &names)
 Parse named conduit bed coefficient/path and exchange opt-out authoring row.
 
std::string openswmm::twoD::parseAquiferBoundaryLine (const std::vector< std::string > &t, std::vector< GwBoundaryRow > &rows)
 Parse a unique hydraulic aquifer exterior-edge prescription.
 
void openswmm::twoD::registerSubsurfaceSections (SubsurfaceConfig &cfg, std::vector< std::string > &node_names, std::vector< std::string > &link_names, input::SectionRegistry &registry)
 Register aquifer option/cell/node/link/boundary and surface-ownership authoring callbacks.
 
GwUnitFactors openswmm::twoD::gwUnitFactors (const SimulationContext &ctx) noexcept
 Resolve authored aquifer units into SI kernel conversion factors.
 
MeshPolylineMapping openswmm::twoD::mapMeshPolyline (const MeshData &mesh, const std::vector< double > &x, const std::vector< double > &y, const std::function< bool(int)> &progress, std::size_t first_interval, std::size_t max_intervals, bool count_contact_cells)
 Clip a polyline into exact convex-cell chainage intervals with local shared-edge ownership.
 
std::vector< std::string > openswmm::twoD::resolveSubsurface (SimulationContext &ctx, const MeshData &mesh, SubsurfaceConfig &cfg, std::vector< std::string > &names, double node_xy_to_mesh)
 Resolve native-node bed identity/location and optional coordinate-based automatic enrollment.
 
std::vector< GwLinkShare > openswmm::twoD::resolveLinkSeepage (SimulationContext &ctx, const MeshData &mesh, SubsurfaceConfig &cfg, std::vector< std::string > &link_names, double node_xy_to_mesh, int &n_conduits)
 Resolve conduit polylines into normalized aquifer cell shares and vertical contact reaches.
 
std::vector< GwSubcatchShare > openswmm::twoD::resolveSubcatchInfiltration (const SimulationContext &ctx, const MeshData &mesh, double node_xy_to_mesh, int &n_subcatch)
 Compute normalized polygon-area shares from every subcatchment footprint to mesh cells.
 
std::string openswmm::twoD::parseSurfaceOwnerLine (const std::vector< std::string > &t, std::vector< SurfaceOwnerRecord > &rows)
 Retain one reviewed uniform subcatchment surface-ownership authoring record.
 
SurfaceOwnershipPreview openswmm::twoD::resolveSurfaceOwnership (const SimulationContext &ctx, const MeshData &mesh, const SolverOptions2D &opts, const SubsurfaceConfig &cfg, const std::vector< SurfaceOwnerRecord > &proposed, const std::function< bool(int, int)> &progress)
 Preview reviewed source footprints, receiver shares and weather-area ownership without adoption.
 
void openswmm::twoD::writeSubsurfaceSections (const SubsurfaceConfig &cfg, const std::vector< std::string > &node_names, const std::vector< std::string > &link_names, std::string &out, bool full_precision)
 Append retained aquifer/ownership/boundary authoring sections in project units.
 

Detailed Description

Parsers, resolution and writer for the [2D_AQUIFER*] sections.

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
License
Apache-2.0