OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
FvQualityTransport.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2// Copyright 2026 Caleb Buahin
3#pragma once
5#include <string>
6namespace openswmm { struct SimulationContext; }
7namespace openswmm::quality {
9public:
11 bool execute(SimulationContext& ctx,double dt);
12 bool accepted() const noexcept {return accepted_;}
13 bool hasRetainedDryMass() const noexcept {
14 for(const auto& row:held_)for(double mass:row)if(mass!=0.0)return true;
15 return false;
16 }
17 // Classic native restart extension: only disconnected dry scalar inventory.
18 // Hydraulic subgrid history is outside this record's contract.
19 std::string dryRestartState(const SimulationContext& ctx) const;
20 std::string restoreDryRestart(SimulationContext& ctx,const std::string& blob,bool apply);
21 std::vector<double> retainedPollutantMass(const SimulationContext& ctx) const;
22 std::vector<double> retainedSpeciesMass(const SimulationContext& ctx) const;
23 void beginWindow() noexcept {accepted_=false;water.ready=false;}
24 void applyPollutantDecay(SimulationContext& ctx,double dt);
25private:
26 ConservativeMixing solute_mixer_,thermal_mixer_;
27 std::vector<std::vector<double>> held_;
28 std::vector<MixedScalar> results_;
29 std::vector<MixingScalar> inputs_;
30 MixingWater thermal_water_;
31 bool accepted_=false;
32};
33}
Definition ConservativeMixing.hpp:28
Definition FvQualityTransport.hpp:8
std::string dryRestartState(const SimulationContext &ctx) const
Definition FvQualityTransport.cpp:206
bool accepted() const noexcept
Definition FvQualityTransport.hpp:12
bool execute(SimulationContext &ctx, double dt)
Definition FvQualityTransport.cpp:23
std::vector< double > retainedSpeciesMass(const SimulationContext &ctx) const
Definition FvQualityTransport.cpp:269
bool hasRetainedDryMass() const noexcept
Definition FvQualityTransport.hpp:13
std::vector< double > retainedPollutantMass(const SimulationContext &ctx) const
Definition FvQualityTransport.cpp:263
std::string restoreDryRestart(SimulationContext &ctx, const std::string &blob, bool apply)
Definition FvQualityTransport.cpp:225
FvTransportWater water
Definition FvQualityTransport.hpp:10
void applyPollutantDecay(SimulationContext &ctx, double dt)
Definition FvQualityTransport.cpp:179
void beginWindow() noexcept
Definition FvQualityTransport.hpp:23
Definition ConservativeMixing.cpp:8
Definition ExchangeLaw.hpp:60
Central, reentrant simulation context.
Definition SimulationContext.hpp:390
Definition FvTransportWater.hpp:7
Definition ConservativeMixing.hpp:12