34#ifndef OPENSWMM_INFLOW_HPP
35#define OPENSWMM_INFLOW_HPP
172 std::vector<TimePattern> patterns_;
175 double getPatternFactor(
int pat_idx,
int month,
int day,
int hour)
const;
Definition Inflow.hpp:136
void init(SimulationContext &ctx)
Definition Inflow.cpp:101
void computeAll(SimulationContext &ctx, double current_date, double dt)
Compute all external + DWF inflows and add to node lateral flow.
Definition Inflow.cpp:333
void refreshPatterns(const SimulationContext &ctx)
Re-copy time-pattern factors from the context into the solver's per-step lookup cache.
Definition Inflow.cpp:86
constexpr int WEEKEND_PATTERN
Definition Inflow.hpp:53
constexpr int MONTHLY_PATTERN
Definition Inflow.hpp:50
constexpr int HOURLY_PATTERN
Definition Inflow.hpp:52
constexpr int DAILY_PATTERN
Definition Inflow.hpp:51
ExtInflowKind
Definition Inflow.hpp:62
@ FLOW
Volumetric inflow (constituent FLOW)
Definition Inflow.hpp:63
@ AGE
Definition Inflow.hpp:71
@ MSX_MASS
Definition Inflow.hpp:76
@ CONCEN
Pollutant concentration; mass rate = value * node flow.
Definition Inflow.hpp:64
@ MSX_CONCEN
Definition Inflow.hpp:75
@ MASS
Definition Inflow.hpp:65
Definition NodeCoupling.cpp:16
Central, reentrant simulation context.
Definition SimulationContext.hpp:353
Definition Inflow.hpp:102
void resize(int n)
Definition Inflow.cpp:58
int count
Definition Inflow.hpp:103
std::vector< int > node_idx
Which node.
Definition Inflow.hpp:104
std::vector< double > avg_value
Average DWF value.
Definition Inflow.hpp:105
std::vector< int > msx_idx
Definition Inflow.hpp:118
std::vector< int > pat_weekend
Definition Inflow.hpp:109
std::vector< uint8_t > is_flow
Definition Inflow.hpp:113
std::vector< int > pat_hourly
Hourly pattern index (-1 = none)
Definition Inflow.hpp:108
std::vector< int > pollut_idx
Pollutant index for a non-FLOW row (-1 when FLOW or unmatched).
Definition Inflow.hpp:115
std::vector< int > pat_monthly
Monthly pattern index (-1 = none)
Definition Inflow.hpp:106
std::vector< int > pat_daily
Daily pattern index (-1 = none)
Definition Inflow.hpp:107
std::vector< int > ts_idx
Timeseries index (-1 = none)
Definition Inflow.hpp:82
int count
Definition Inflow.hpp:80
std::vector< int > pollut_idx
Definition Inflow.hpp:93
void resize(int n)
Definition Inflow.cpp:45
std::vector< double > scale_factor
Timeseries scaling factor.
Definition Inflow.hpp:85
std::vector< double > conv_factor
Definition Inflow.hpp:86
std::vector< int > node_idx
Which node this inflow applies to.
Definition Inflow.hpp:81
std::vector< int > base_pat_idx
Baseline pattern index (-1 = none)
Definition Inflow.hpp:83
std::vector< double > baseline
Constant baseline value.
Definition Inflow.hpp:84
std::vector< int > kind
Definition Inflow.hpp:89
Definition Inflow.hpp:127
int type
0=monthly, 1=daily, 2=hourly, 3=weekend
Definition Inflow.hpp:128
double factors[24]
Up to 24 factors (monthly=12, daily=7, hourly=24)
Definition Inflow.hpp:129