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
4
#include "
FvTransportWater.hpp
"
5
#include <string>
6
namespace
openswmm
{
struct
SimulationContext
; }
7
namespace
openswmm::quality
{
8
class
FvQualityTransport
{
9
public
:
10
FvTransportWater
water
;
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);
25
private
:
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
}
FvTransportWater.hpp
openswmm::quality::ConservativeMixing
Definition
ConservativeMixing.hpp:28
openswmm::quality::FvQualityTransport
Definition
FvQualityTransport.hpp:8
openswmm::quality::FvQualityTransport::dryRestartState
std::string dryRestartState(const SimulationContext &ctx) const
Definition
FvQualityTransport.cpp:206
openswmm::quality::FvQualityTransport::accepted
bool accepted() const noexcept
Definition
FvQualityTransport.hpp:12
openswmm::quality::FvQualityTransport::execute
bool execute(SimulationContext &ctx, double dt)
Definition
FvQualityTransport.cpp:23
openswmm::quality::FvQualityTransport::retainedSpeciesMass
std::vector< double > retainedSpeciesMass(const SimulationContext &ctx) const
Definition
FvQualityTransport.cpp:269
openswmm::quality::FvQualityTransport::hasRetainedDryMass
bool hasRetainedDryMass() const noexcept
Definition
FvQualityTransport.hpp:13
openswmm::quality::FvQualityTransport::retainedPollutantMass
std::vector< double > retainedPollutantMass(const SimulationContext &ctx) const
Definition
FvQualityTransport.cpp:263
openswmm::quality::FvQualityTransport::restoreDryRestart
std::string restoreDryRestart(SimulationContext &ctx, const std::string &blob, bool apply)
Definition
FvQualityTransport.cpp:225
openswmm::quality::FvQualityTransport::water
FvTransportWater water
Definition
FvQualityTransport.hpp:10
openswmm::quality::FvQualityTransport::applyPollutantDecay
void applyPollutantDecay(SimulationContext &ctx, double dt)
Definition
FvQualityTransport.cpp:179
openswmm::quality::FvQualityTransport::beginWindow
void beginWindow() noexcept
Definition
FvQualityTransport.hpp:23
openswmm::quality
Definition
ConservativeMixing.cpp:8
openswmm
Definition
ExchangeLaw.hpp:60
openswmm::SimulationContext
Central, reentrant simulation context.
Definition
SimulationContext.hpp:390
openswmm::quality::FvTransportWater
Definition
FvTransportWater.hpp:7
openswmm::quality::MixingWater
Definition
ConservativeMixing.hpp:12
src
engine
quality
FvQualityTransport.hpp
Generated by
1.13.2