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

S7 — see SurfaceQuality2D.hpp. The buildup / washoff / sweeping formulas are the subcatchment step's (SWMMEngine::stepSurfaceQuality, the A7 sweeping block, initialize 11b — and their BW-MSX transcription in quality/MsxSurfaceQuality.cpp), written in the 2D module's SI: cell area m², runoff in m/s, cell rows in concentration × m³. The land-use functions themselves are unit-free in "days" and "user mass per normalizer unit", so buildup on a cell with no flow is bit-identical to buildup on a subcatchment (gate 1). More...

#include "core/ProcessPerf.hpp"
#include "core/PolygonRings.hpp"
#include "SurfaceQuality2D.hpp"
#include <algorithm>
#include <cctype>
#include <cmath>
#include <set>
#include <sstream>
#include "../data/MeshData.hpp"
#include "../data/SolverOptions2D.hpp"
#include "../data/SurfaceStateData.hpp"
#include "../data/SurfaceTransportState.hpp"
#include "../../core/DateTime.hpp"
#include "../../core/SimulationContext.hpp"
#include "../../core/UnitConversion.hpp"
#include "../../input/InputParseUtils.hpp"
#include "../../input/Tokenizer.hpp"
#include "../../quality/MsxSurfaceQuality.hpp"
Include dependency graph for SurfaceQuality2D.cpp:

Namespaces

namespace  openswmm
 
namespace  openswmm::twoD
 

Functions

std::string openswmm::twoD::formatSqScope (const SqScopeKey &k)
 Scope key ↔ file token ("*", "TAG name", "CELL n" — 1-based).
 
std::string openswmm::twoD::parseSqScope (const std::vector< std::string > &tokens, std::size_t &at, SqScopeKey &key, const char *section)
 Parse a scoped surface-quality row prefix and expose its first payload token.
 
std::string openswmm::twoD::parse2DCoveragesLine (const std::vector< std::string > &tokens, std::vector< CoverageRow2D > &rows)
 Parse one scoped 2D coverage authoring row.
 
std::string openswmm::twoD::parse2DLoadingsLine (const std::vector< std::string > &tokens, std::vector< LoadingRow2D > &rows)
 Parse one scoped 2D loading authoring row.
 
std::string openswmm::twoD::parse2DCurbLengthLine (const std::vector< std::string > &tokens, std::vector< CurbRow2D > &rows)
 Parse one scoped 2D curb authoring row.
 
void openswmm::twoD::registerSurfaceQualitySections (SurfaceQuality2D &sq, input::SectionRegistry &registry)
 Register [2D_COVERAGES], [2D_LOADINGS], [2D_CURB_LENGTH] writing into sq.
 

Detailed Description

S7 — see SurfaceQuality2D.hpp. The buildup / washoff / sweeping formulas are the subcatchment step's (SWMMEngine::stepSurfaceQuality, the A7 sweeping block, initialize 11b — and their BW-MSX transcription in quality/MsxSurfaceQuality.cpp), written in the 2D module's SI: cell area m², runoff in m/s, cell rows in concentration × m³. The land-use functions themselves are unit-free in "days" and "user mass per normalizer unit", so buildup on a cell with no flow is bit-identical to buildup on a subcatchment (gate 1).

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