OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
SigmaPorewaterMap.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2// Copyright 2026 Caleb Buahin
3
12
13#pragma once
14#include <string>
15#include <vector>
16namespace openswmm::twoD {
18// A sparse contact view of canonical SIGMA chemistry. It owns only derived
19// overlap values and unconsumed contact receipts, never a second reservoir.
21 struct Overlap {
22 int physical = 0, reactor = 0;
23 double water = 0, bulk = 0;
24 };
25 int layers = 0, species = 0;
26 std::vector<Overlap> overlaps;
27 std::vector<double> capacity, mass, reserved, pending;
32 bool active() const noexcept { return layers > 0; }
33 std::string configure(int layer_count, int species_count, std::vector<Overlap>,
34 const std::vector<double>& partition,
35 const std::vector<double>& canonical,
36 const std::vector<double>& saturated_reserved);
37 std::string rebase(const std::vector<double>& canonical,
38 const std::vector<double>& saturated_reserved);
39 bool apply(int row, int physical, double increment) noexcept;
40 std::string publish(SubsurfaceTransportState&, int cell);
41};
42} // namespace openswmm::twoD
Definition ExchangeLaw.hpp:60
Definition SigmaPorewaterMap.hpp:21
double water
Definition SigmaPorewaterMap.hpp:23
double bulk
Definition SigmaPorewaterMap.hpp:23
int physical
Definition SigmaPorewaterMap.hpp:22
int reactor
Definition SigmaPorewaterMap.hpp:22
Definition SigmaPorewaterMap.hpp:20
std::string publish(SubsurfaceTransportState &, int cell)
Publish pending overlap receipts into canonical hydraulic reactors and refresh this view.
Definition SigmaPorewaterMap.cpp:226
std::vector< double > mass
Definition SigmaPorewaterMap.hpp:27
std::vector< double > reserved
Definition SigmaPorewaterMap.hpp:27
std::string rebase(const std::vector< double > &canonical, const std::vector< double > &saturated_reserved)
Redistribute canonical reactor mass and saturated claims over existing overlap capacities.
Definition SigmaPorewaterMap.cpp:90
int layers
Definition SigmaPorewaterMap.hpp:25
int species
Definition SigmaPorewaterMap.hpp:25
bool active() const noexcept
Test whether a stretching-layer overlap map is configured.
Definition SigmaPorewaterMap.hpp:32
std::string configure(int layer_count, int species_count, std::vector< Overlap >, const std::vector< double > &partition, const std::vector< double > &canonical, const std::vector< double > &saturated_reserved)
Construct a derived physical/SIGMA overlap view and seed it from canonical inventories.
Definition SigmaPorewaterMap.cpp:41
std::vector< double > pending
Definition SigmaPorewaterMap.hpp:27
std::vector< Overlap > overlaps
Definition SigmaPorewaterMap.hpp:26
std::vector< double > capacity
Definition SigmaPorewaterMap.hpp:27
bool apply(int row, int physical, double increment) noexcept
Distribute a physical-layer contact receipt into overlap views and pending reactor receipts.
Definition SigmaPorewaterMap.cpp:161
Species mass in both aquifer zones, and where mass crossed a boundary.
Definition SubsurfaceTransportState.hpp:69