OpenSWMM Engine  6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
Loading...
Searching...
No Matches
HydrologyData.hpp
Go to the documentation of this file.
1
14#ifndef OPENSWMM_ENGINE_HYDROLOGY_DATA_HPP
15#define OPENSWMM_ENGINE_HYDROLOGY_DATA_HPP
16
17#include <vector>
18#include <string>
19#include <array>
20
21namespace openswmm {
22
23// ============================================================================
24// Snowpack definitions (from [SNOWPACKS] section)
25// ============================================================================
26
37 int count() const { return static_cast<int>(names.size()); }
38
39 std::vector<std::string> names;
40
41 // PLOWABLE surface: cmin, cmax, tbase, fwfrac, sd0, fw0, snn0
42 std::vector<std::array<double, 7>> plowable;
43
44 // IMPERVIOUS surface: cmin, cmax, tbase, fwfrac, sd0, fw0, snn0
45 std::vector<std::array<double, 7>> impervious;
46
47 // PERVIOUS surface: cmin, cmax, tbase, fwfrac, sd0, fw0, snn0
48 std::vector<std::array<double, 7>> pervious;
49
50 // REMOVAL: dSnow, fOut, fImp, fPerv, fImelt, fToSubcatch, subcatch_name
51 std::vector<std::array<double, 6>> removal;
52 std::vector<std::string> removal_subcatch;
53};
54
55// ============================================================================
56// Aquifer definitions (from [AQUIFERS] section)
57// ============================================================================
58
67 int count() const { return static_cast<int>(names.size()); }
68
69 std::vector<std::string> names;
70 std::vector<double> porosity;
71 std::vector<double> wilting_point;
72 std::vector<double> field_capacity;
73 std::vector<double> conductivity;
74 std::vector<double> conduct_slope;
75 std::vector<double> tension_slope;
76 std::vector<double> upper_evap;
77 std::vector<double> lower_evap;
78 std::vector<double> lower_loss;
79 std::vector<double> bottom_elev;
80 std::vector<double> water_table_elev;
81 std::vector<double> upper_moist;
82 std::vector<std::string> upper_evap_pat;
83};
84
85// ============================================================================
86// LID control definitions (from [LID_CONTROLS] section)
87// ============================================================================
88
100 int count() const { return static_cast<int>(names.size()); }
101
102 std::vector<std::string> names;
103
105 std::vector<std::string> lid_type;
106
108 std::vector<std::array<double, 5>> surface;
109
111 std::vector<std::array<double, 7>> soil;
112
114 std::vector<std::array<double, 6>> pavement;
115
117 std::vector<std::array<double, 4>> storage;
118
120 std::vector<std::array<double, 6>> drain;
121
123 std::vector<std::array<double, 3>> drainmat;
124};
125
126// ============================================================================
127// LID usage assignments (from [LID_USAGE] section)
128// ============================================================================
129
136 int count() const { return static_cast<int>(subcatch_index.size()); }
137
138 std::vector<int> subcatch_index;
139 std::vector<int> lid_index;
140 std::vector<int> number;
141 std::vector<double> area;
142 std::vector<double> width;
143 std::vector<double> init_sat;
144 std::vector<double> from_imperv;
145 std::vector<int> to_perv;
146 std::vector<std::string> rpt_file;
147 std::vector<std::string> drain_to;
148 std::vector<double> from_perv;
149};
150
151} // namespace openswmm
152
153#endif // OPENSWMM_ENGINE_HYDROLOGY_DATA_HPP
Definition Controls.cpp:24
SoA storage for aquifer parameter sets.
Definition HydrologyData.hpp:66
std::vector< double > wilting_point
Definition HydrologyData.hpp:71
std::vector< double > tension_slope
Definition HydrologyData.hpp:75
std::vector< double > bottom_elev
Definition HydrologyData.hpp:79
std::vector< double > lower_loss
Definition HydrologyData.hpp:78
std::vector< double > conduct_slope
Definition HydrologyData.hpp:74
std::vector< double > lower_evap
Definition HydrologyData.hpp:77
int count() const
Definition HydrologyData.hpp:67
std::vector< double > conductivity
Definition HydrologyData.hpp:73
std::vector< double > field_capacity
Definition HydrologyData.hpp:72
std::vector< std::string > upper_evap_pat
ET pattern name (optional)
Definition HydrologyData.hpp:82
std::vector< double > upper_evap
Definition HydrologyData.hpp:76
std::vector< std::string > names
Definition HydrologyData.hpp:69
std::vector< double > water_table_elev
Definition HydrologyData.hpp:80
std::vector< double > upper_moist
Definition HydrologyData.hpp:81
std::vector< double > porosity
Definition HydrologyData.hpp:70
SoA storage for LID control type definitions.
Definition HydrologyData.hpp:99
std::vector< std::array< double, 5 > > surface
SURFACE layer params (up to 5 values).
Definition HydrologyData.hpp:108
std::vector< std::string > lid_type
LID type code string: BC, RG, GR, IT, PP, RB, RD, VS.
Definition HydrologyData.hpp:105
std::vector< std::array< double, 6 > > drain
DRAIN layer params (up to 6 values).
Definition HydrologyData.hpp:120
int count() const
Definition HydrologyData.hpp:100
std::vector< std::array< double, 3 > > drainmat
DRAINMAT layer params (up to 3 values).
Definition HydrologyData.hpp:123
std::vector< std::array< double, 4 > > storage
STORAGE layer params (up to 4 values).
Definition HydrologyData.hpp:117
std::vector< std::string > names
Definition HydrologyData.hpp:102
std::vector< std::array< double, 6 > > pavement
PAVEMENT layer params (up to 6 values).
Definition HydrologyData.hpp:114
std::vector< std::array< double, 7 > > soil
SOIL layer params (up to 7 values).
Definition HydrologyData.hpp:111
SoA storage for LID usage assignments to subcatchments.
Definition HydrologyData.hpp:135
std::vector< double > init_sat
Initial saturation (0–1)
Definition HydrologyData.hpp:143
std::vector< std::string > drain_to
Drain-to subcatchment name (optional)
Definition HydrologyData.hpp:147
std::vector< double > width
Top width of overland flow (ft or m)
Definition HydrologyData.hpp:142
std::vector< int > to_perv
1 = route outflow to pervious area
Definition HydrologyData.hpp:145
std::vector< int > subcatch_index
Subcatchment index.
Definition HydrologyData.hpp:138
std::vector< double > from_perv
% of pervious area routed to LID
Definition HydrologyData.hpp:148
int count() const
Definition HydrologyData.hpp:136
std::vector< std::string > rpt_file
Report file name (optional)
Definition HydrologyData.hpp:146
std::vector< double > from_imperv
% of impervious area routed to LID
Definition HydrologyData.hpp:144
std::vector< int > number
Number of replicate units.
Definition HydrologyData.hpp:140
std::vector< double > area
Area of each unit (ft2 or m2)
Definition HydrologyData.hpp:141
std::vector< int > lid_index
Index into LidControlStore.
Definition HydrologyData.hpp:139
SoA storage for snowpack parameter sets.
Definition HydrologyData.hpp:36
std::vector< std::array< double, 7 > > pervious
Definition HydrologyData.hpp:48
std::vector< std::array< double, 6 > > removal
Definition HydrologyData.hpp:51
int count() const
Definition HydrologyData.hpp:37
std::vector< std::array< double, 7 > > plowable
Definition HydrologyData.hpp:42
std::vector< std::string > names
Definition HydrologyData.hpp:39
std::vector< std::string > removal_subcatch
Definition HydrologyData.hpp:52
std::vector< std::array< double, 7 > > impervious
Definition HydrologyData.hpp:45