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

T7.1 — species / age / enthalpy carried by the two-zone groundwater kernel (GW transport plan §3.4). More...

#include <cmath>
#include <cstddef>
#include <string>
#include <string_view>
#include <vector>
Include dependency graph for SubsurfaceTransportState.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmm::twoD::SubsurfaceTransportState
 Species mass in both aquifer zones, and where mass crossed a boundary. More...
 

Namespaces

namespace  openswmm
 
namespace  openswmm::twoD
 

Detailed Description

T7.1 — species / age / enthalpy carried by the two-zone groundwater kernel (GW transport plan §3.4).

The subsurface twin of SurfaceTransportState, and deliberately the same shape so the two read alike and the seam between them is one concentration:

  • Mass, not concentration. A store holds conc × m³; the age row holds age-volume and the temperature row temperature-volume (°C·m³, signed). A report divides by the SI water volume.
  • Species-major, [s * n_cells + c], so a species sweep walks contiguous cells.
  • Rows come from TransportPolicy — pollutants, MSX, __WATER_AGE__, __TEMPERATURE__ last — never re-derived here (GW plan §3.4: "do not re-derive np/nm/na/nt a fourth time").

Two bulk stores, one per zone. sat_mass rides the saturated water h_g·θ_s·A; unsat_mass rides the column store h_u·A, whatever closure produced it. Explicit LAYERED transport instead owns species-major layer_mass on the accepted SIGMA column; unsat_mass is then only its derived sum. Default BULK retains the existing well-mixed unsaturated approximation.

The temperature row remains a liquid-water temperature-volume, exactly as on the surface. The separate ground thermal columns own soil-matrix plus porewater energy, conduction and thermal boundaries; accepted water transfers carry sensible energy between those stores without putting solid heat into layer_mass.

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