86#ifndef OPENSWMM_ENGINE_2D_SUBSURFACE_SECTIONS_HPP
87#define OPENSWMM_ENGINE_2D_SUBSURFACE_SECTIONS_HPP
140 std::vector<GwAquiferRow>& rows);
159 std::vector<GwNodeBed>& beds, std::vector<std::string>& names);
177 std::vector<GwLinkRow>& rows, std::vector<std::string>& names);
194 std::vector<GwBoundaryRow>& rows);
211 std::vector<std::string>& link_names,
212 input::SectionRegistry& registry);
256 double node_xy_to_mesh);
304 const std::function<
bool(
int)>& progress = {}, std::size_t first_interval = 0,
305 std::size_t max_intervals = std::numeric_limits<std::size_t>::max(),
306 bool count_contact_cells =
false);
341 SubsurfaceConfig& cfg,
342 std::vector<std::string>& link_names,
343 double node_xy_to_mesh,
int& n_conduits);
367 const MeshData& mesh,
368 double node_xy_to_mesh,
int& n_subcatch);
389 const std::vector<std::string>& node_names,
390 const std::vector<std::string>& link_names, std::string& out,
391 bool full_precision =
false);
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 ExchangeLaw.hpp:60
std::string 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.
Definition SubsurfaceSections.cpp:429
MeshPolylineMapping 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.
Definition SubsurfaceSections.cpp:1014
std::vector< GwSubcatchShare > 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.
Definition SubsurfaceSections.cpp:1472
std::vector< GwLinkShare > 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.
Definition SubsurfaceSections.cpp:1294
std::string parseAquiferBoundaryLine(const std::vector< std::string > &t, std::vector< GwBoundaryRow > &rows)
Parse a unique hydraulic aquifer exterior-edge prescription.
Definition SubsurfaceSections.cpp:531
std::vector< std::string > 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.
Definition SubsurfaceSections.cpp:1159
std::string 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.
Definition SubsurfaceSections.cpp:488
std::string parseAquiferLine(const std::vector< std::string > &tokens, std::vector< GwAquiferRow > &rows)
Parse a scoped aquifer hydraulic authoring row into a local candidate.
Definition SubsurfaceSections.cpp:312
GwUnitFactors gwUnitFactors(const SimulationContext &ctx) noexcept
Resolve authored aquifer units into SI kernel conversion factors.
Definition SubsurfaceSections.cpp:642
void registerSubsurfaceSections(SubsurfaceConfig &cfg, std::vector< std::string > &node_names, std::vector< std::string > &link_names, input::SectionRegistry ®istry)
Register aquifer option/cell/node/link/boundary and surface-ownership authoring callbacks.
Definition SubsurfaceSections.cpp:578
std::string parseAquiferOptionsLine(const std::vector< std::string > &tokens, GwOptions &opts)
Apply one aquifer authoring option without initializing a physical column.
Definition SubsurfaceSections.cpp:181
void 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.
Definition SubsurfaceSections.cpp:1905
Definition ExchangeLaw.hpp:60
double * y
Definition odesolve.c:37
Central, reentrant simulation context.
Definition SimulationContext.hpp:390
[2D_AQUIFER_OPTIONS]. Defaults are the plan's starred values.
Definition SubsurfaceData.hpp:142
Project-unit → SI multipliers for the four kinds of aquifer number.
Definition SubsurfaceData.hpp:374
SoA storage for 2D mixed triangle/quad mesh geometry and topology.
Definition MeshData.hpp:65
Definition SubsurfaceSections.hpp:258
double share
coincident shared-edge ownership, never added length.
Definition SubsurfaceSections.hpp:261
int cell
Definition SubsurfaceSections.hpp:259
double begin
Definition SubsurfaceSections.hpp:260
double end
SI chainage along the complete polyline, m.
Definition SubsurfaceSections.hpp:260
Definition SubsurfaceSections.hpp:263
std::size_t interval_count
Definition SubsurfaceSections.hpp:267
std::string error
Definition SubsurfaceSections.hpp:264
std::size_t contact_cells
Definition SubsurfaceSections.hpp:267
bool cancelled
Definition SubsurfaceSections.hpp:266
double length
Definition SubsurfaceSections.hpp:265
std::vector< MeshPolylineInterval > intervals
Definition SubsurfaceSections.hpp:268
double covered_length
Definition SubsurfaceSections.hpp:265
Everything the parser fills, before resolution onto cells.
Definition SubsurfaceData.hpp:391