BG_Flood  0.8
Documentation (Work-in-progress)
Input.h
Go to the documentation of this file.
1 
2 #ifndef INPUT_H
3 #define INPUT_H
4 
5 #include "General.h"
6 
7 // Timeseries output
8 class TSoutnode {
9 public:
10  int i, j, block;
11  double x, y;
12  std::string outname;
13 };
14 
15 // Flexible definition of time outputs
16 class T_output {
17 public:
18  double init = NAN;
19  double tstep = NAN;
20  double end = NAN;
21  std::vector<std::string> inputstr;
22  std::vector<double> val;
23 };
24 
25 // Special output zones for nc files, informatin given by the user
26 class outzoneP {
27 public:
28  //std::vector<int> blocks; // one zone will spread across multiple blocks (entire blocks containing a part of the area will be output)
29  double xstart, xend, ystart, yend; // definition of the zone needed for special nc output (rectangular zone) by the user
30  //double xo, xmax, yo, ymax; // Real zone for output (because we output full blocks)
31  std::string outname; // name for the output file (one for each zone)
32  T_output Toutput; // time for outputs for the zone
33 };
34 
35 class Flowin {
36 public:
37  double time, q;
38 };
39 
40 class Mapparam {
41 public:
42 
43 };
44 
45 class River {
46 public:
47  std::vector<int> i, j, block; // one river can spring across multiple cells
48  double disarea; // discharge area
49  double xstart,xend, ystart,yend; // location of the discharge as a rectangle
50  double to, tmax;
51  std::string Riverflowfile; // river flow input time[s] flow in m3/s
52  std::vector<Flowin> flowinput; // vector to store the data of the river flow input file
53 
54 };
55 
56 class inputmap {
57 public:
58  int nx = 0;
59  int ny= 0;
60  double xo = 0.0;
61  double yo = 0.0;
62  double xmax = 0.0;
63  double ymax = 0.0;
64  double dx = 0.0;
65  double dy = 0.0;
66  double grdalpha=0.0;
67  double denanval = NAN;
68  bool flipxx = false;
69  bool flipyy = false;
70  std::string inputfile;
71  std::string extension;
72  std::string varname;
73 };
74 
75 class SLTS {
76 public:
77  double time;
78  std::vector<double> wlevs;
79  std::vector<double> uuvel;
80  std::vector<double> vvvel;
81 
82 };
83 
84 class Windin {
85 public:
86  double time;
87  double wspeed;
88  double wdirection;
89  double uwind;
90  double vwind;
91 
92 
93 };
94 
95 
96 // used as vector class to store Time series outputs
97 class Pointout {
98 public:
99  double time, zs, h, u,v;
100 };
101 
102 class Vertex {
103 public:
104  double x, y;
105 };
106 
107 class Polygon {
108 public:
109  double xmin, xmax, ymin, ymax;
110  std::vector<Vertex> vertices;
111 };
112 
113 // End of global definition
114 #endif
Definition: Input.h:35
double q
Definition: Input.h:37
double time
Definition: Input.h:37
Definition: Input.h:40
Definition: Input.h:97
double h
Definition: Input.h:99
double time
Definition: Input.h:99
double v
Definition: Input.h:99
double zs
Definition: Input.h:99
double u
Definition: Input.h:99
Definition: Input.h:107
double xmin
Definition: Input.h:109
double ymin
Definition: Input.h:109
double xmax
Definition: Input.h:109
std::vector< Vertex > vertices
Definition: Input.h:110
double ymax
Definition: Input.h:109
Definition: Input.h:45
double xend
Definition: Input.h:49
std::vector< int > block
Definition: Input.h:47
double xstart
Definition: Input.h:49
double ystart
Definition: Input.h:49
std::vector< int > i
Definition: Input.h:47
double yend
Definition: Input.h:49
std::vector< Flowin > flowinput
Definition: Input.h:52
double disarea
Definition: Input.h:48
std::vector< int > j
Definition: Input.h:47
double tmax
Definition: Input.h:50
std::string Riverflowfile
Definition: Input.h:51
double to
Definition: Input.h:50
Definition: Input.h:75
double time
Definition: Input.h:77
std::vector< double > uuvel
Definition: Input.h:79
std::vector< double > wlevs
Definition: Input.h:78
std::vector< double > vvvel
Definition: Input.h:80
Definition: Input.h:8
int i
Definition: Input.h:10
double x
Definition: Input.h:11
std::string outname
Definition: Input.h:12
int block
Definition: Input.h:10
double y
Definition: Input.h:11
int j
Definition: Input.h:10
Definition: Input.h:16
double end
Definition: Input.h:20
std::vector< std::string > inputstr
Definition: Input.h:21
double init
Definition: Input.h:18
std::vector< double > val
Definition: Input.h:22
double tstep
Definition: Input.h:19
Definition: Input.h:102
double y
Definition: Input.h:104
double x
Definition: Input.h:104
Definition: Input.h:84
double uwind
Definition: Input.h:89
double wspeed
Definition: Input.h:87
double time
Definition: Input.h:86
double vwind
Definition: Input.h:90
double wdirection
Definition: Input.h:88
Definition: Input.h:56
std::string varname
Definition: Input.h:72
double dy
Definition: Input.h:65
double yo
Definition: Input.h:61
std::string inputfile
Definition: Input.h:70
double xmax
Definition: Input.h:62
bool flipxx
Definition: Input.h:68
std::string extension
Definition: Input.h:71
bool flipyy
Definition: Input.h:69
int nx
Definition: Input.h:58
double grdalpha
Definition: Input.h:66
double xo
Definition: Input.h:60
double ymax
Definition: Input.h:63
int ny
Definition: Input.h:59
double denanval
Definition: Input.h:67
double dx
Definition: Input.h:64
Definition: Input.h:26
double xend
Definition: Input.h:29
double yend
Definition: Input.h:29
double xstart
Definition: Input.h:29
T_output Toutput
Definition: Input.h:32
std::string outname
Definition: Input.h:31
double ystart
Definition: Input.h:29