Flumy [Free API]
Process based model for meandering chanelized systems
MCRCDefines.h
1 #ifndef MCRC_DEFINES_H
2 #define MCRC_DEFINES_H
3 
4 // VERSION and DATE of KERNEL LIBRARY
5 // See Parameters.cpp
6 
8 // Facies //
10 // Simulation regular discretization default values for unavailable sample (below or above simulation)
11 #define UNAVAILABLE_FACIES 255
12 #define UNAVAILABLE_AGE 0
13 #define UNAVAILABLE_GRAIN_SIZE -1.
14 
15 // Following family values correspond to the position of each facies in the FaciesRegister (See Facies.cpp)
16 // These defines are intended to be used by plugins.
17 // Family Abbr. Type of deposit
18 #define FACIES_UDF_ID 0
19 #define FACIES_CL_ID 1
20 #define FACIES_PB_ID 2
21 #define FACIES_SP_ID 3
22 #define FACIES_CSI_ID 4
23 #define FACIES_CCH_ID 5
24 #define FACIES_CSII_ID 6
25 #define FACIES_LV_ID 7
26 #define FACIES_OB_ID 8
27 #define FACIES_MP_ID 9
28 #define FACIES_CF_ID 10
29 #define FACIES_WL_ID 11
30 #define FACIES_DR_ID 12
31 #define FACIES_PL_ID 13
32 
33 #define FACIES_MIN_ID 0
34 #define FACIES_MAX_ID 13
35 
36 #define FACIES_UDF_LABEL "Undefined"
37 #define FACIES_CL_LABEL "Channel Lag"
38 #define FACIES_PB_LABEL "Point Bar / LAPs"
39 #define FACIES_SP_LABEL "Sand Plug"
40 #define FACIES_CSI_LABEL "Crevasse Splay I"
41 #define FACIES_CCH_LABEL "Splay II Channels"
42 #define FACIES_CSII_LABEL "Crevasse Splay II"
43 #define FACIES_LV_LABEL "Levee"
44 #define FACIES_OB_LABEL "Overbank"
45 #define FACIES_MP_LABEL "Mud Plug"
46 #define FACIES_CF_LABEL "Channel Fill"
47 #define FACIES_WL_LABEL "Wetland"
48 #define FACIES_DR_LABEL "Draping"
49 #define FACIES_PL_LABEL "Pelagic"
50 
51 #define FACIES_UDF_BRIEF "UDF"
52 #define FACIES_CL_BRIEF "CL"
53 #define FACIES_PB_BRIEF "PB"
54 #define FACIES_SP_BRIEF "SP"
55 #define FACIES_CSI_BRIEF "CSI"
56 #define FACIES_CCH_BRIEF "CCh"
57 #define FACIES_CSII_BRIEF "CSII"
58 #define FACIES_LV_BRIEF "LV"
59 #define FACIES_OB_BRIEF "OB"
60 #define FACIES_MP_BRIEF "MP"
61 #define FACIES_CF_BRIEF "CF"
62 #define FACIES_WL_BRIEF "WL"
63 #define FACIES_DR_BRIEF "DR"
64 #define FACIES_PL_BRIEF "PL"
65 
66 #ifndef SWIG
67 #define FACIES_UDF_COLOR 0.6,0.6,0.9
68 #define FACIES_CL_COLOR 1.,0.5,0.
69 #define FACIES_PB_COLOR 1.,1.,0.
70 #define FACIES_SP_COLOR 0.75,0.75,0.55
71 #define FACIES_CSI_COLOR 0.8,0.5,0.2
72 #define FACIES_CCH_COLOR 0.8,1.,0.2
73 #define FACIES_CSII_COLOR 0.8,0.8,0.2
74 #define FACIES_LV_COLOR 0.4,0.8,0.2
75 #define FACIES_OB_COLOR 0.,1.,0.
76 #define FACIES_MP_COLOR 0.,0.8,0.5
77 #define FACIES_CF_COLOR 0.5,0.5,0.5
78 #define FACIES_WL_COLOR 0.85,0.45,0.85
79 #define FACIES_DR_COLOR 0.6,0.8,0.9
80 #define FACIES_PL_COLOR 1.,0.8,1.
81 #endif
82 
84 // Grain size //
86 // Grain size class {0,15}
87 #define FACIES_UDF_GRAIN 15 // Arbitrary
88 #define FACIES_CL_GRAIN 13
89 #define FACIES_PB_GRAIN 10
90 #define FACIES_SP_GRAIN 9
91 #define FACIES_CSI_GRAIN 9
92 #define FACIES_CCH_GRAIN 8
93 #define FACIES_CSII_GRAIN 7
94 #define FACIES_LV_GRAIN 6
95 #define FACIES_OB_GRAIN 2
96 #define FACIES_MP_GRAIN 1
97 #define FACIES_CF_GRAIN 1
98 #define FACIES_WL_GRAIN 0
99 #define FACIES_DR_GRAIN 0
100 #define FACIES_PL_GRAIN 0
101 
102 #define MD_MAX_GRANULO 1.0000 // 15
103 // 0.9375 // 14
104 #define MD_CL_GRANULO 0.8750 // 13
105 // 0.8125 // 12
106 // 0.7500 // 11
107 #define MD_PB_GRANULO 0.6875 // 10
108 #define MD_SP_GRANULO 0.6250 // 9
109 #define MD_CSI_GRANULO 0.6250 // 9
110 #define MD_CCH_GRANULO 0.5625 // 8
111 #define MD_CSII_GRANULO 0.5000 // 7
112 #define MD_LV_GRANULO 0.4375 // 6
113 // 0.3750 // 5
114 // 0.3125 // 4
115 // 0.2500 // 3
116 #define MD_OB_GRANULO 0.1875 // 2
117 #define MD_MP_GRANULO 0.1250 // 1
118 #define MD_CF_GRANULO 0.1250 // 1
119 #define MD_WL_GRANULO 0.0625 // 0
120 #define MD_DR_GRANULO 0.0625 // 0
121 #define MD_PL_GRANULO 0.0625 // 0
122 #define MD_MIN_GRANULO 0.0625 // 0
123 // Grain size 0. value is forbidden
124 
125 #define MD_CL_GRANULO_MAX 1.0000
126 #define MD_CL_GRANULO_MIN 0.8125
127 #define MD_PB_GRANULO_MAX 0.8125
128 #define MD_PB_GRANULO_MIN 0.5625
129 #define MD_SP_GRANULO_MAX 0.7500
130 #define MD_SP_GRANULO_MIN 0.5625
131 #define MD_CSI_GRANULO_MAX 0.7500
132 #define MD_CSI_GRANULO_MIN 0.5625
133 #define MD_CCH_GRANULO_MAX 0.6875
134 #define MD_CCH_GRANULO_MIN 0.5000
135 #define MD_CSII_GRANULO_MAX 0.5625
136 #define MD_CSII_GRANULO_MIN 0.3750
137 #define MD_LV_GRANULO_MAX 0.5625
138 #define MD_LV_GRANULO_MIN 0.3750
139 #define MD_OB_GRANULO_MAX 0.3125
140 #define MD_OB_GRANULO_MIN 0.0625
141 #define MD_MP_GRANULO_MAX 0.1250
142 #define MD_MP_GRANULO_MIN 0.1250
143 #define MD_CF_GRANULO_MAX 0.1250
144 #define MD_CF_GRANULO_MIN 0.1250
145 #define MD_WL_GRANULO_MAX 0.0625
146 #define MD_WL_GRANULO_MIN 0.0625
147 #define MD_DR_GRANULO_MAX 0.0625
148 #define MD_DR_GRANULO_MIN 0.0625
149 #define MD_PL_GRANULO_MAX 0.0625
150 #define MD_PL_GRANULO_MIN 0.0625
151 
152 #define MD_NB_CLASS_GR 16
153 #define MD_NB_TEMPLATES 4
154 
156 #define MD_GR_CLASSES { " 0 - Clay (13-14)", \
157  " 1 - Clay (11-12)", \
158  " 2 - Clay (9-10)", \
159  " 3 - Clay (8)", \
160  " 4 - Silt (7)", \
161  " 5 - Silt (6)", \
162  " 6 - Silt (5)", \
163  " 7 - Silt (4)", \
164  " 8 - Very Fine Sand (3)", \
165  " 9 - Fine Sand (2)", \
166  "10 - Medium Sand (1)", \
167  "11 - Coarse Sand (0)", \
168  "12 - Very Coarse Sand (-1)",\
169  "13 - Gravel (-2)", \
170  "14 - Pebble (-3,-5)", \
171  "15 - Cobble (-6,-8)" \
172  }
173 
174 // Clay => Silt => Sand => Gravel/Pebble
175 // Classes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
176 
179 #define MD_FLUV_GR_TEMPLATES { { 0, 0, 0, 0, 0, 2, 3, 6, 13, 27, 26, 10, 8, 5, 0, 0 }, /*Standard*/ \
180  { 0, 0, 0, 0, 0, 2, 2, 4, 13, 20, 18, 16, 12, 8, 3, 2 }, /*Sandy*/ \
181  { 0, 0, 0, 0, 0, 0, 10, 13, 33, 18, 10, 8, 5, 3, 0, 0 }, /*Fine grained*/ \
182  { 0, 0, 2, 3, 5, 10, 24, 29, 22, 2, 2, 1, 0, 0, 0, 0 }, /*Muddy*/ \
183  }
184 
186 #define MD_TURBI_GR_TEMPLATES { { 0, 0, 1, 2, 3, 4, 8, 17, 25, 22, 8, 5, 3, 2, 0, 0 }, /*Standard*/ \
187  { 0, 0, 0, 0, 0, 2, 3, 6, 13, 27, 26, 10, 8, 5, 0, 0 }, /*Sandy*/ \
188  { 0, 0, 0, 0, 0, 0, 10, 13, 50, 22, 5, 0, 0, 0, 0, 0 }, /*Fine grained*/ \
189  { 1, 2, 2, 3, 5, 10, 24, 29, 22, 2, 0, 0, 0, 0, 0, 0 }, /*Muddy*/ \
190  }
191 
192 
194 #define MD_GR_TEMPLATE_NAMES { "Standard", \
195  "Sandy", \
196  "Fine grained" \
197  "Muddy", \
198  }
199 
200 #define MD_CLASS_SAND_MEDIUM_IDX 10
201 #define MD_CLASS_SAND_FINE_IDX 9
202 
203 #define MD_STD_IDX 0
204 #define MD_SANDY_IDX 1
205 #define MD_FINE_IDX 2
206 #define MD_MUDDY_IDX 3
207 
208 
210 // Erodibility Factor //
212 #define MD_E_FAC 1.e-8
213 
214 
216 // User classes //
218 #define MD_MAX_USER_CLASS 26
219 
220 
222 // Menu selection strings //
224 
225 #define MD_MENU_FLUVIAL "Fluvial"
226 #define MD_MENU_TURBIDITE "Turbidite"
227 #define MD_MENU_TURBIDITE2 "Turbidite (Research)" // Kept for retro compatibility
228 
229 #define MD_MENU_NONE "None"
230 
231 #define MD_MENU_UDF FACIES_UDF_LABEL
232 #define MD_MENU_DR FACIES_DR_LABEL
233 #define MD_MENU_PL FACIES_PL_LABEL
234 #define MD_MENU_PB FACIES_PB_LABEL
235 #define MD_MENU_LV FACIES_LV_LABEL
236 #define MD_MENU_OB FACIES_OB_LABEL
237 #define MD_MENU_CF FACIES_CF_LABEL
238 #define MD_MENU_MP FACIES_MP_LABEL
239 #define MD_MENU_WL FACIES_WL_LABEL
240 
241 #define MD_MENU_FL "Overbank Flow"
242 #define MD_MENU_ER "Erosive"
243 #define MD_MENU_GH "Ghost Migration"
244 
245 #define MD_MENU_NEVER "Never"
246 #define MD_MENU_PER "Periodic"
247 #define MD_MENU_POIS "Poisson"
248 
249 #define MD_MENU_CONST "Constant"
250 #define MD_MENU_UNIF "Uniform"
251 #define MD_MENU_NORM "Normal"
252 #define MD_MENU_LOGN "Lognormal"
253 
254 #define MD_MENU_FILE "File"
255 
257 typedef enum { FLUVIAL_SYSTEM = 0,
258  TURBIDITE_SYSTEM = 1,
259 } SysType;
260 
262 typedef enum { AGG_NONE,
263  AGG_DR,
264  AGG_OB,
265  AGG_GH,
266  AGG_ER
267 } AggType;
268 
270 typedef enum { FREQ_NEVER,
271  FREQ_PERIODIC,
272  FREQ_POISSON
273 } FreqType;
274 
276 typedef enum { DIST_CONSTANT,
277  DIST_UNIFORM,
278  DIST_NORMAL,
279  DIST_LOGNORMAL
280 } DistType;
281 
283 typedef enum { FILL_UNDEFINED = FACIES_UDF_ID,
284  FILL_CHANNEL_LAG = FACIES_CL_ID,
285  FILL_POINT_BAR = FACIES_PB_ID,
286  FILL_SAND_PLUG = FACIES_SP_ID,
287  FILL_CREVASSE_SPLAY_I = FACIES_CSI_ID,
288  FILL_CREVASSE_SPLAY_CHANNELS = FACIES_CCH_ID,
289  FILL_CREVASSE_SPLAY_II = FACIES_CSII_ID,
290  FILL_LEVEE = FACIES_LV_ID,
291  FILL_OVERBANK = FACIES_OB_ID,
292  FILL_MUD_PLUG = FACIES_MP_ID,
293  FILL_CHANNEL_FILL = FACIES_CF_ID,
294  FILL_WETLAND = FACIES_WL_ID,
295  FILL_DRAPING = FACIES_DR_ID,
296  FILL_PELAGIC = FACIES_PL_ID
297 } FillingFacies;
298 
300 typedef enum { DRAP_UNDEFINED = FACIES_UDF_ID,
301  DRAP_DRAPING = FACIES_DR_ID,
302  DRAP_PELAGIC = FACIES_PL_ID
303 } DrapingFacies;
304 
309 typedef enum { ZUL_NONE, // No upper limit surface
310  ZUL_NEUTRAL, // When upper limit has been reach, the simulation stops and do nothing more
311  ZUL_EROSIVE, // When upper limit has been reach, the simulation stops and erodes all exceeding deposits
312  ZUL_STRATI // The simulation topography will be conditioned to fit the upper limit surface at the end
313 } ZulType;
314 
319 typedef enum { SURF_NONE,
320  SURF_CONST,
321  SURF_FILE
322 } SurfType;
323 
328 typedef enum { EMAP_CONST,
329  EMAP_LOAD,
330  EMAP_LOAD_CONV,
331  EMAP_BUILD
332 } EmapType;
333 
338 typedef enum { SURF_EXCD = 0,
339  SURF_REPL = 1,
340  SURF_AGGR = 2,
341  SURF_EROD_DOWN = 3,
342  SURF_EROD_UP = 4
343 } SurfMode;
344 
353 typedef enum { STE_NO_ERROR,
354  STE_UNKNOWN_ERROR,
355  STE_INIT_ERROR,
356  STE_NOT_READY,
357  STE_CHANNEL_ERROR,
358  STE_CONSISTENCY_WARN,
359  STE_CONSISTENCY_ERROR,
360  STE_ZUL_REACHED,
361  STE_STOP_HONORED,
362  STE_STOPPED
363 } StatusError;
364 
366 typedef enum { TL_NONE = 0,
367  TL_FATAL = 1,
368  TL_ERROR = 2,
369  TL_WARNING = 3,
370  TL_INFO = 4,
371  TL_DEBUG = 5,
372  TL_ALL = 6
373 } TraceLevel;
374 
379 typedef enum { STEEP_UNKNOWN = -2,
380  STEEP_CUTOFF = -1,
381  STEEP_OK = 0,
382  STEEP_SELF_CUT = 1,
383  STEEP_UP_OR_DOWN = 2,
384  STEEP_SHORT = 3,
385  STEEP_TRAP = 4,
386  STEEP_OUT_EXT = 5,
387  STEEP_MARGINS = 6,
388  STEEP_COMPLETE = 7
389 } SteepestError;
390 
391 typedef enum { NO_DISTRIB,
392  FREE_DISTRIB,
393  PREMIUM_DISTRIB,
394  RESEARCH_DISTRIB
395 } MCRCDistrib;
396 
397 #define NO_DISTRIB_STR "No valid license"
398 #define FREE_DISTRIB_STR "Free"
399 #define PREMIUM_DISTRIB_STR "Premium"
400 #define RESEARCH_DISTRIB_STR "Research"
401 
402 #ifndef SWIG
407 typedef enum { COL_FACIES_CODING,
408  COL_GRANULO_CODING,
409  COL_FACIES_AND_GRANULO_CODING,
410  COL_FACIES_GRANULO_AND_AGE_CODING,
411  COL_AGE_CODING,
412  COL_ERODIBILITY_CODING
413 } ColorsCoding;
414 
419 typedef enum {
420  ONLY_SAND,
421  ONLY_CHANNELIZED,
422  EACH_FACIES
423 } ComputedFacies;
424 #endif
425 
427 // Trace function pointer declaration //
429 typedef void (*TraceFunc)(const char*, TraceLevel);
430 typedef void (*DumpFunc)(const char*);
431 
433 // Progress event function pointer declaration //
435 typedef bool (*ProgressFunc)(int);
436 
438 // Parameters keys //
440 
441 // Others parameters
442 #define KEY_SIM_SEED "SIM_SEED"
443 #define KEY_SIM_TYPE "SIM_TYPE"
444 #define KEY_DOMAIN_OX "DOMAIN_OX"
445 #define KEY_DOMAIN_OY "DOMAIN_OY"
446 #define KEY_DOMAIN_NX "DOMAIN_NX"
447 #define KEY_DOMAIN_NY "DOMAIN_NY"
448 #define KEY_DOMAIN_DX "DOMAIN_DX"
449 #define KEY_DOMAIN_DY "DOMAIN_DY"
450 #define KEY_DOMAIN_GRID_DIR "DOMAIN_GRID_DIR"
451 #define KEY_DOMAIN_ZREF "DOMAIN_ZREF"
452 #define KEY_DOMAIN_SLOPE "DOMAIN_SLOPE"
453 #define KEY_CHNL_WIDTH "CHNL_WIDTH"
454 #define KEY_CHNL_MAX_DEPTH "CHNL_MAX_DEPTH"
455 #define KEY_CHNL_WAVELENGTH "CHNL_WAVELENGTH"
456 #define KEY_CHNL_MARGIN "CHNL_MARGIN"
457 #define KEY_CHNL_FLW_DIR "CHNL_FLW_DIR"
458 #define KEY_CHNL_SCALE_DIST "CHNL_SCALE_DIST"
459 #define KEY_CHNL_SCALE_CONST "CHNL_SCALE_CONST"
460 #define KEY_CHNL_SCALE_MIN "CHNL_SCALE_MIN"
461 #define KEY_CHNL_SCALE_MAX "CHNL_SCALE_MAX"
462 #define KEY_CHNL_SCALE_NORM_MEAN "CHNL_SCALE_NORM_MEAN"
463 #define KEY_CHNL_SCALE_NORM_STDEV "CHNL_SCALE_NORM_STDEV"
464 #define KEY_CHNL_SCALE_LOGNORM_MEAN "CHNL_SCALE_LOGNORM_MEAN"
465 #define KEY_CHNL_SCALE_LOGNORM_STDEV "CHNL_SCALE_LOGNORM_STDEV"
466 #define KEY_DYN_EMAP_ACTIVE "DYN_EMAP_ACTIVE"
467 #define KEY_EROD_COEF "EROD_COEF"
468 #define KEY_EROD_OFFSET "EROD_OFFSET"
469 #define KEY_ZUL_TYPE "ZUL_TYPE"
470 #define KEY_AV_LV_OB "AV_LV_OB"
471 #define KEY_AV_NO_SPLAY "AV_NO_SLAY"
472 #define KEY_AV_LOC_FREQ "AV_LOC_FREQ"
473 #define KEY_AV_LOC_PERIOD "AV_LOC_PERIOD"
474 #define KEY_AV_LOC_POISSON "AV_LOC_POISSON"
475 #define KEY_AV_LOC_PROB1 "AV_LOC_PROB1"
476 #define KEY_AV_LOC_PROB2 "AV_LOC_PROB2"
477 #define KEY_AV_REG_FREQ "AV_REG_FREQ"
478 #define KEY_AV_REG_PERIOD "AV_REG_PERIOD"
479 #define KEY_AV_REG_POISSON "AV_REG_POISSON"
480 #define KEY_AG_TYPE "AG_TYPE"
481 #define KEY_AG_DRAP "AG_DRAP"
482 #define KEY_AG_EXP_DEC_THICK "AG_EXP_DEC_THICK"
483 #define KEY_AG_LV_WIDTH "AG_LV_WIDTH"
484 #define KEY_AG_RAND_LAMBDA "AG_RAND_LAMBDA"
485 #define KEY_AG_OB_FREQ "AG_OB_FREQ"
486 #define KEY_AG_OB_PERIOD "AG_OB_PERIOD"
487 #define KEY_AG_OB_POISSON "AG_OB_POISSON"
488 #define KEY_AG_OB_DIST "AG_OB_DIST"
489 #define KEY_AG_OB_CONST "AG_OB_CONST"
490 #define KEY_AG_OB_MIN "AG_OB_MIN"
491 #define KEY_AG_OB_MAX "AG_OB_MAX"
492 #define KEY_AG_OB_NORM_MEAN "AG_OB_NORM_MEAN"
493 #define KEY_AG_OB_NORM_STDEV "AG_OB_NORM_STDEV"
494 #define KEY_AG_OB_LOGNORM_MEAN "AG_OB_LOGNORM_MEAN"
495 #define KEY_AG_OB_LOGNORM_STDEV "AG_OB_LOGNORM_STDEV"
496 #define KEY_AG_OB_PEAT "AG_OB_PEAT"
497 #define KEY_AG_OB_PEL_DRAP_INT "AG_OB_PEL_DRAP_INT"
498 #define KEY_AG_EP_INIT_ELEV "AG_EP_INIT_ELEV"
499 #define KEY_AG_EP_FREQ "AG_EP_FREQ"
500 #define KEY_AG_EP_PERIOD "AG_EP_PERIOD"
501 #define KEY_AG_EP_POISSON "AG_EP_POISSON"
502 #define KEY_AG_EP_DIST "AG_EP_DIST"
503 #define KEY_AG_EP_CONST "AG_EP_CONST"
504 #define KEY_AG_EP_MIN "AG_EP_MIN"
505 #define KEY_AG_EP_MAX "AG_EP_MAX"
506 #define KEY_AG_EP_NORM_MEAN "AG_EP_NORM_MEAN"
507 #define KEY_AG_EP_NORM_STDEV "AG_EP_NORM_STDEV"
508 #define KEY_AG_EP_LOGNORM_MEAN "AG_EP_LOGNORM_MEAN"
509 #define KEY_AG_EP_LOGNORM_STDEV "AG_EP_LOGNORM_STDEV"
510 #define KEY_COND_WELL_RELAX "COND_WELL_RELAX"
511 #define KEY_COND_WELL_CLOSURE_ON "COND_WELL_CLOSURE_ON"
512 #define KEY_COND_WELL_STOP_HONORED "COND_WELL_STOP_HONORED"
513 #define KEY_COND_WELL_CLOSURE "COND_WELL_CLOSURE"
514 #define KEY_SED_LOAD_ACTIVE "SED_LOAD_ACTIVE"
515 #define KEY_SED_LOAD_MEAN "SED_LOAD_MEAN"
516 #define KEY_SED_LOAD_VOL "SED_LOAD_VOL"
517 
518 
520 // Parameters default values //
522 // WARNING: in accordance with nexus default parameters !
523 
524 // Parameters default values
525 #define DEF_SIM_SEED 165426111
526 #define DEF_SIM_TYPE MD_MENU_FLUVIAL
527 #define DEF_DOMAIN_OX 0. // 0 m
528 #define DEF_DOMAIN_OY 0. // 0 m
529 #define DEF_DOMAIN_NX 251 // 251 # of nodes along Ox axis
530 #define DEF_DOMAIN_NY 201 // 201 # of nodes along Oy axis
531 #define DEF_DOMAIN_DX 10. // 10 m (w / 3)
532 #define DEF_DOMAIN_DY 10. // 10 m (w / 3)
533 #define DEF_DOMAIN_GRID_DIR 0. // 0 degrees
534 #define DEF_DOMAIN_ZREF 0. // 0 m
535 #define DEF_DOMAIN_SLOPE 0.001 // 1 m / 1 km
536 #define DEF_CHNL_WIDTH 30. // 30 m
537 #define DEF_CHNL_MAX_DEPTH 3. // 3 m (Which gives mean depth = 2 m)
538 #define DEF_CHNL_WAVELENGTH 375. // 375 m (Which gives a default Cf = 0.16)
539 #define DEF_CHNL_MARGIN 12. // 12 x w
540 #define DEF_CHNL_FLW_DIR 90. // 90 degrees
541 #define DEF_CHNL_SCALE_DIST DIST_CONSTANT
542 #define DEF_CHNL_SCALE_CONST 100. // 100 %
543 #define DEF_CHNL_SCALE_MIN 80. // 80 %
544 #define DEF_CHNL_SCALE_MAX 120. // 120 %
545 #define DEF_CHNL_SCALE_NORM_MEAN 100. // 100 %
546 #define DEF_CHNL_SCALE_NORM_STDEV 20. // 20 %
547 #define DEF_CHNL_SCALE_LOGNORM_MEAN 100. // 100 %
548 #define DEF_CHNL_SCALE_LOGNORM_STDEV 20. // 20 %
549 #define DEF_EROD_COEF 4*MD_E_FAC // 4.e-8 (TODO : [Cleaning] : Which gives MigRate = XXXm / it)
550 #define DEF_EROD_OFFSET 0 // 0 m
551 #define DEF_ZUL_TYPE 0 // None
552 #define DEF_AV_LV_OB false
553 #define DEF_AV_NO_SPLAY false
554 #define DEF_AV_LOC_FREQ FREQ_POISSON
555 #define DEF_AV_LOC_PERIOD 280 // 280 it
556 #define DEF_AV_LOC_POISSON 280 // 280 it
557 #define DEF_AV_LOC_PROB1 0.5 // 50 % of chances
558 #define DEF_AV_LOC_PROB2 0.9 // 90 % of chances
559 #define DEF_AV_REG_FREQ FREQ_POISSON
560 #define DEF_AV_REG_PERIOD 500 // 500 it
561 #define DEF_AV_REG_POISSON 500 // 500 it
562 #define DEF_AG_TYPE AGG_OB
563 #define DEF_AG_EXP_DEC_THICK 919. // 919 m (~ w x 30)
564 #define DEF_AG_LV_WIDTH 6. // 6w m
565 #define DEF_AG_RAND_LAMBDA true
566 #define DEF_COND_WELL_RELAX 20. // 20 %
567 #define DEF_COND_WELL_CLOSURE_ON false
568 #define DEF_COND_WELL_STOP_HONORED false
569 #define DEF_COND_WELL_CLOSURE 0.1 // 10 cm
570 #define DEF_AG_EP_INIT_ELEV 9999. // 9999 m
571 #define DEF_AG_EP_FREQ FREQ_NEVER
572 #define DEF_AG_EP_PERIOD 70 // 70 it
573 #define DEF_AG_EP_POISSON 70 // 70 it
574 #define DEF_AG_EP_DIST DIST_CONSTANT
575 #define DEF_AG_EP_CONST 0.1 // 10 cm
576 #define DEF_AG_EP_MIN 0.07 // 7 cm
577 #define DEF_AG_EP_MAX 0.13 // 13 cm
578 #define DEF_AG_EP_NORM_MEAN 0.1 // 10 cm
579 #define DEF_AG_EP_NORM_STDEV 0.03 // 3 cm
580 #define DEF_AG_EP_LOGNORM_MEAN 0.1 // 10 cm
581 #define DEF_AG_EP_LOGNORM_STDEV 0.03 // 3 cm
582 #define DEF_AG_OB_PEAT 0. // 0 m
583 #define DEF_AG_OB_PEL_DRAP_INT 0. // 0 m / 10000 it
584 #define DEF_AG_OB_FREQ FREQ_POISSON
585 #define DEF_AG_OB_PERIOD 70 // 70 it
586 #define DEF_AG_OB_POISSON 70 // 70 it
587 #define DEF_AG_OB_DIST DIST_NORMAL
588 #define DEF_AG_OB_CONST 0.1 // 10 cm
589 #define DEF_AG_OB_MIN 0.07 // 7 cm
590 #define DEF_AG_OB_MAX 0.13 // 13 cm
591 #define DEF_AG_OB_NORM_MEAN 0.1 // 10 cm
592 #define DEF_AG_OB_NORM_STDEV 0.03 // 3 cm
593 #define DEF_AG_OB_LOGNORM_MEAN 0.1 // 10 cm
594 #define DEF_AG_OB_LOGNORM_STDEV 0.03 // 3 cm
595 #define DEF_AG_DRAP DRAP_DRAPING
596 #define DEF_SED_LOAD_ACTIVE false
597 #define DEF_SED_LOAD_MEAN 0.01 // TODO : Really ?
598 #define DEF_NEXUS_ISBX_TEMPLATE { 80, 50, 80, 110 }
599 #define DEF_NEXUS_NG_TEMPLATE { 50., 30., 50., 70.}
600 
601 // Default values for new turbidites scenario (keep Lemay 2018 (PhD) values)
602 //
603 // Lemay 2020 proposes another scenario but with too big turbidites
604 // See : Geomorphic variability of submarine channelized systems along continental margins:
605 // Comparison with fluvial meandering channels
606 // Fig 7 and 8 - Sediment Conduit : Leveed Channels
607 // So we choose to keep the Martin's PhD scenario.
608 //
609 // The default Erodibility Coefficient 5.10-9 can be increased to reduce simulation time.
610 // In that case, one iteration in turbidites doesn't correspond to 1 year anymore.
611 // Default avulsion and overbank periods must be updated accordingly.
612 // Keep in mind that for a same migration rate between fluvial and turbidites,
613 // the aggradation rate should be 10 times bigger in turbidites.
614 //
615 #define DEF_TURBI_DOMAIN_NX 251 // 251 # of nodes along Ox axis
616 #define DEF_TURBI_DOMAIN_NY 201 // 201 # of nodes along Oy axis
617 #define DEF_TURBI_DOMAIN_DX 200. // 200 m (w/4)
618 #define DEF_TURBI_DOMAIN_DY 200. // 200 m (w/4)
619 #define DEF_TURBI_DOMAIN_SLOPE 0.005 // 5 m / 1 km
620 #define DEF_TURBI_CHNL_WIDTH 800. // 800 m (1200m in Lemay 2020)
621 #define DEF_TURBI_CHNL_WAVELENGTH 4000. // 4000 m (4200m in Lemay 2020)
622 #define DEF_TURBI_CHNL_MAX_DEPTH 40. // 40 m (mean depth = 27m, 34m in Lemay 2020)
623 #define DEF_TURBI_CHNL_MARGIN 5. // 5w m
624 #define DEF_TURBI_EROD_COEF 4*MD_E_FAC // 4.e-8
625 #define DEF_TURBI_COND_WELL_CLOSURE 1.4 // 1.4 m
626 #define DEF_TURBI_AG_LV_WIDTH 2. // 2w m
627 #define DEF_TURBI_AG_EXP_DEC_THICK 8107. // 8107 m
628 #define DEF_TURBI_AG_EP_PERIOD 24 // 24 it
629 #define DEF_TURBI_AG_EP_POISSON 24 // 24 it
630 #define DEF_TURBI_AG_EP_CONST 2.0 // 2.0 m
631 #define DEF_TURBI_AG_EP_MIN 1.4 // 1.4 m
632 #define DEF_TURBI_AG_EP_MAX 2.6 // 2.6 m
633 #define DEF_TURBI_AG_EP_NORM_MEAN 2.0 // 2.0 m
634 #define DEF_TURBI_AG_EP_NORM_STDEV 0.6 // 60 cm
635 #define DEF_TURBI_AG_EP_LOGNORM_MEAN 2.0 // 2.0 m
636 #define DEF_TURBI_AG_EP_LOGNORM_STDEV 0.6 // 60 cm
637 #define DEF_TURBI_AG_OB_CONST 2.0 // 2.0 m
638 #define DEF_TURBI_AG_OB_MIN 1.4 // 1.4 m
639 #define DEF_TURBI_AG_OB_MAX 2.6 // 2.6 m
640 #define DEF_TURBI_AG_OB_NORM_MEAN 2.0 // 2.0 m
641 #define DEF_TURBI_AG_OB_NORM_STDEV 0.6 // 60 cm
642 #define DEF_TURBI_AG_OB_LOGNORM_MEAN 2.0 // 2.0 m
643 #define DEF_TURBI_AG_OB_LOGNORM_STDEV 0.6 // 60 cm
644 #define DEF_TURBI_AG_OB_PERIOD 24 // 24 it
645 #define DEF_TURBI_AG_OB_POISSON 24 // 24 it
646 #define DEF_TURBI_AG_DRAP DRAP_PELAGIC
647 #define DEF_TURBI_AV_LOC_PERIOD 288 // 288 it
648 #define DEF_TURBI_AV_LOC_POISSON 288 // 288 it
649 #define DEF_TURBI_AV_REG_PERIOD 470 // 470 it
650 #define DEF_TURBI_AV_REG_POISSON 470 // 470 it
651 #define DEF_TURBI_NEXUS_ISBX_TEMPLATE { 60, 30, 60, 90 }
652 #define DEF_TURBI_SED_LOAD_MEAN 0.1
653 #define DEF_TURBI_NEXUS_NG_TEMPLATE { 6., 3., 6., 10.} // Lemay 2016
654 
655 
657 // Parameters range values //
659 
660 // Parameters range values
661 #define MIN_SIM_SEED 1
662 #define MIN_DOMAIN_NX 20 // 20 nodes
663 #define MIN_DOMAIN_NY 20 // 20 nodes
664 #define MAX_DOMAIN_NX 5000 // 5000 nodes
665 #define MAX_DOMAIN_NY 5000 // 5000 nodes
666 #define MIN_DOMAIN_DX 1 // 1 m
667 #define MIN_DOMAIN_DY 1 // 1 m
668 #define MIN_DOMAIN_GRID_DIR -360 // degrees
669 #define MAX_DOMAIN_GRID_DIR +360 // degrees
670 #define MIN_DOMAIN_SLOPE 0.0001 // 10 cm / 1 km
671 #define MAX_DOMAIN_SLOPE 0.1 // 100 m / 1 km
672 #define MIN_CHNL_WIDTH 5. // 5 m
673 #define MAX_CHNL_WIDTH 500. // 500 m
674 #define MIN_CHNL_WAVELENGTH 10. // 10 m
675 #define MAX_CHNL_WAVELENGTH 10000. // 10 km
676 #define MIN_CHNL_MAX_DEPTH 0.5 // 0.5 m (Mean depth of 0.33 m)
677 #define MAX_CHNL_MAX_DEPTH 15. // 15 m (Mean depth of 10 m)
678 #define MIN_CHNL_MARGIN 1 // 1 time channel width
679 #define MAX_CHNL_MARGIN 100 // 100 times channel width
680 #define MIN_CHNL_FLW_DIR -360. // degrees
681 #define MAX_CHNL_FLW_DIR +360. // degrees
682 #define MIN_CHNL_SCALE_CONST 80. // 80 %
683 #define MAX_CHNL_SCALE_CONST 120. // 120 %
684 #define MIN_CHNL_SCALE_MIN 50. // 50 %
685 #define MAX_CHNL_SCALE_MIN 100. // 100 %
686 #define MIN_CHNL_SCALE_MAX 100. // 100 %
687 #define MAX_CHNL_SCALE_MAX 150. // 150 %
688 #define MIN_CHNL_SCALE_NORM_MEAN 90. // 90 %
689 #define MAX_CHNL_SCALE_NORM_MEAN 110. // 110 %
690 #define MIN_CHNL_SCALE_NORM_STDEV 0. // No variation
691 #define MAX_CHNL_SCALE_NORM_STDEV 40. // +-40%
692 #define MIN_CHNL_SCALE_LOGNORM_MEAN 90. // 90 %
693 #define MAX_CHNL_SCALE_LOGNORM_MEAN 110. // 110 %
694 #define MIN_CHNL_SCALE_LOGNORM_STDEV 0. // No variation
695 #define MAX_CHNL_SCALE_LOGNORM_STDEV 40. // +-40%
696 #define MIN_EROD_COEF 0. // No erodibility
697 #define MAX_EROD_COEF 20*MD_E_FAC // 2.e-7
698 #define MIN_AV_LOC_PERIOD 1 // 1 iteration
699 #define MIN_AV_LOC_POISSON 1 // 1 iteration
700 #define MIN_AV_LOC_PROB1 0 // 0 % of chance
701 #define MAX_AV_LOC_PROB1 1 // 100 % of chances
702 #define MIN_AV_LOC_PROB2 0 // 0 % of chances
703 #define MAX_AV_LOC_PROB2 1 // 100 % of chances
704 #define MIN_AV_REG_PERIOD 1 // 1 iteration
705 #define MIN_AV_REG_POISSON 1 // 1 iteration
706 #define MIN_AG_EXP_DEC_THICK 5. // 5 m
707 #define MIN_AG_LV_WIDTH 0.05 // 0.05 times channel width
708 #define MIN_COND_WELL_RELAX 0 // 0 %
709 #define MAX_COND_WELL_RELAX 100 // 100 %
710 #define MIN_COND_WELL_CLOSURE 0.01 // 1 cm
711 #define MAX_COND_WELL_CLOSURE 1. // 1 m
712 #define MIN_AG_EP_PERIOD 1 // 1 iteration
713 #define MIN_AG_EP_POISSON 1 // 1 iteration
714 #define MIN_AG_EP_CONST 0.02 // 2 cm
715 #define MIN_AG_EP_MIN 0.02 // 2 cm
716 #define MIN_AG_EP_MAX 0.03 // 3 cm
717 #define MIN_AG_EP_NORM_MEAN 0.02 // 2 cm
718 #define MIN_AG_EP_NORM_STDEV 0 // No variation
719 #define MIN_AG_EP_LOGNORM_MEAN 0.02 // 2 cm
720 #define MIN_AG_EP_LOGNORM_STDEV 0 // No variation
721 #define MIN_AG_OB_PEAT 0 // 0 %
722 #define MAX_AG_OB_PEAT 99 // 99 %
723 #define MIN_AG_OB_PEL_DRAP_INT 0. // 0. m / 10000 it (no pelagic / draping)
724 #define MAX_AG_OB_PEL_DRAP_INT 100 // 100 m / 10000 it
725 #define MIN_AG_OB_PERIOD 1 // 1 iteration
726 #define MIN_AG_OB_POISSON 1 // 1 iteration
727 #define MIN_AG_OB_CONST 0. // 0 cm (Authorized for steady migration)
728 #define MIN_AG_OB_MIN 0. // 0 cm (Authorized for steady migration)
729 #define MIN_AG_OB_MAX 0.03 // 3 cm
730 #define MIN_AG_OB_NORM_MEAN 0. // 0 cm (Authorized for steady migration)
731 #define MIN_AG_OB_NORM_STDEV 0. // No variation
732 #define MIN_AG_OB_LOGNORM_MEAN 0. // 0 cm (Authorized for steady migration)
733 #define MIN_AG_OB_LOGNORM_STDEV 0. // No variation
734 #define MIN_SED_LOAD_MEAN 0.001 // 0.1% (default 1%)
735 #define MIN_SED_LOAD_VOL 0. // 0% (minimal volume in a class)
736 
737 // Ranges for turbidites parameters // range has been modified for sensitivity analysis
738 #define MAX_TURBI_DOMAIN_SLOPE 0.5 // 0.5 km/1 km
739 #define MIN_TURBI_CHNL_WIDTH 20. // 20 m
740 #define MAX_TURBI_CHNL_WIDTH 4000. // 4 km
741 #define MIN_TURBI_CHNL_WAVELENGTH 100. // 100 m
742 #define MAX_TURBI_CHNL_WAVELENGTH 20000.// 20 km
743 #define MIN_TURBI_CHNL_MAX_DEPTH 10. // 10 m
744 #define MAX_TURBI_CHNL_MAX_DEPTH 500. // 500 m
745 #define MIN_TURBI_COND_WELL_CLOSURE 0.1 // 10 cm
746 #define MAX_TURBI_COND_WELL_CLOSURE 10. // 10 m
747 #define MIN_TURBI_AG_EXP_DEC_THICK 100. // 100 m
748 
749 // Non expert user parameters range values
750 #define MIN_NEXUS_ISBX 20 // Minimum index: ribbon type
751 #define MAX_NEXUS_ISBX 160 // Maximum index: sheet type
752 #define MIN_NEXUS_NG 1. // 1%
753 #define MAX_NEXUS_NG 99. // 99%
754 
755 #endif // MCRC_DEFINES_H
756