.;;;;;;;. .----- |###| |##/ |###| |###| |###| |###| |###| |#######| |###| .###. '\######\''/'' |###| |###| .##| |##. \######\/ |###| |###| ####| |#### \######\ |###| |###| ####| |#### \######\ |###| |###| '##| |##' /\######\ _|###|_ _|###|_ '###' _./__\###GPU\_ reference 15.11.2016 keywords are NOT case sensitive. all lines with a # are ignored (comments). ######### BLOCK META INFORMATION ######### >>>> project_id - optional - project number (int) for meta processing - default: 0 - example: "project_id 10009" >>>> gq - optional - river ("Gefahrenquelle") id (int) - default: 0 - example: "gq 1234" >>>> run_name - optional - custom name (string) for a run - default: run_1 - example: "run_name testrun_002" - do not use blanks or slashes, or any other characters your filesystem disallows in a folder name >>>> return_period - optional - return period of the flooding event - default: 0 - example: "return_period 100" >>>> scen_id - optional - id (int) of the scenario simulated - default: 0 - example: "szen_id 130013001" >>>> probability - optional - probability (float) of simulation - can be used to weigh the results in META processing - default: 1.0 - example: "probability 0.5" >>>> BATCH - optional - boolean flag for system pause after run - if not present flox will halt after terminating its calculation - default: N/A (if not set program halts, otherwise it does not) - example: "BATCH" >>>> UUID - optional - boolean flag for creating a pseudo-UUID directory within the working directory (path) - if present flox works in UUID directory, otherwise it works in %path% - default: N/A - example: "UUID" ######### BLOCK INPUT ######### >>>> mesh - obligatory - sets the mesh (or grid) for the simulation - default: N/A - examples: "mesh F:\proj\23\mesh.tif", "mesh \\SERVER03\projects\01Int\1023\m_northeast.asc" - meshs can be specified in all GDAL-supported formats (ESRI grids, GeoTIFF, etc.). for more details see technical documentation >>>> h_grid/hu_grid/hv_grid - optional - used to load an existing state, such as the result of a previous simulation - sets the variable h, hu, or hv at t = 0 to the input source (grids) - coherence is important, as hu cannot be a number other than 0 if h is 0 on any given cell - alignment according to output and used mesh is mandatory - default: "" - examples: "h_grid c:\flox\mod\123\h.tif", "hu_grid c:\flox\mod\123\hu.tif" >>>> k_strickler - optional - sets the base friction coefficient for the domain - can work together with a given kst_grid command (see details there) - conversions used in flox: | manning_coefficient = 1 / kst | chezy_coefficient = kst * h ^ (1/6) - default: 23 - examples: "k_strickler 35" >>>> k_strickler_grid - optional - used to load a grid with friction coefficients - the grid needs to have the same extent, cellsize etc. as input grid (mesh) - notice however that the input mesh represents corner points, whereas k_strickler_grid - represents cell center points. Therefore the number of cells is 1 cell smaller in each dimension. - every value represents the fricition coefficient on a given cell - nodata or negative values are overwritten by the default kst value (command "k_strickler") - notice that the kSt values are stretched before usage based on the steepness of a given grid cell - to see the stretched values you can use the output command with the "k_strickler" switch - default: N/A - example: k_strickler_grid E:\proj_231337\mod\flox\kst.tif" >>>> source_radius - optional - sets the radius (or rather: half side length) of point sources - the default value is 0, meaning a true point source: all the water is deposited on one cell - a value of 1 means a grid of 3x3 cells, a value of 2 5x5 and so on. - this is helpful if your CFL-restriction is actually hit by the inflow at a source which is common for high resolution grids - default: 0 - example: source_radius 1 ######### BLOCK OUTPUT ######### >>>> path - obligatory - sets the output path. needs to exist on filesystem. - default: "c:\temp" - example: "path c:\flox\simulation_1" >>>> progress_images - optional - switch to turn off writing of progress images - values: "true", "false" - default: "true" - example: "progress_images false" >>>> progress_streamline_images - optional - switch to turn off writing streamline images - values: "true", "false" - default: "true" - example: "progress_streamline_images true" >>>> output - optional - defines additional variables to be output by the program - values: "tau", "k_strickler", "b", "huv" - any combination of the above values is allowed, seperate by a blank (" ") - tau: returns the maximum shear stress that occured in the simulation - k_strickler: feeds back the grid containing the strickler values - b: returns the bathymetry at cell center - huv: returns the values necessary to continue the simulation (h, hu, hv) - no: no output grids are being written. - debug: PRIVATE - these can be loaded using the key words "h_grid" etc. described above to continue the simulation - example "output b tau huv" >>> culvert_logtime - optional - defines how frequently a log entry for the culvert logs will be written in seconds - default: 10 - example "culvert_logtime 1" ######### BLOCK MODEL ######### >>>> runtime_s - obligatory - sets runtime of the simulation in seconds - default: 3600 - example: "runtime_s 48132.5" >>>> start_time_s - optional - sets starting time of simulation in seconds - useful when running simulations from an old state - allows jumping into hydrographs etc. at any given point - default: 0 - example: "start_time_s 3600.0" >>>> n/e/s/w - sets boundary conditions for the respective boundary (north, east, south, west) - values: "ref" (reflective boundary), "non_ref" (non reflective boundary) - default: "ref" - examples: "N non_ref", "s ref" ######### BLOCK GENERAL ######### >>>> gpu - sets the number of the GPU to be used. - default: fastest CUDA compatible GPU will be choosen (processorcount x clock) - to see a list of available GPUs in your system use flox with the parameter "-dev" - example: "GPU 1" >>>> cfl - sets the modfier for the Courant-Friedrichs-Lewy value - the numerical scheme demands a value of 0.25 for the CFL to be positivity preserving - this modifier builds on top of that using multiplication - a value of 1.0 (the default) translates to a CFL of 0.25, a value of 0.5 translates to cfl of 0.125 - a value higher than 1.0 is not recommended but can often be used without numerical problems. - default: 1.0 - example "CFL 0.2" ######### BLOCK OBJECTS ######### >>>> source - defines an input source with corresponding hydrograph - syntax: | | source | | ... | | end_source | - default: N/A - example: | | source 631890.188 266608.343 | 0 0 | 3 8.78 | 5.53 13.5 | 6.67 31.75 | 20.9 4.79 | 30 0 | end_source | - hydrograph is given as tuples of t[s] and Q[m3/s] - usage of "end_source" is mandatory for successful parsing - the final q will be continued indefinitely, so set to 0 if you want the inflow to stop at the end >>>> measure - defines a cross section over which flow is measured - syntax: | | measure | | | end_measure | - default: N/A - example: | | measure m.txt | 342.3 532.2 | 430.01 536.4 | end_measure | - The line between the points is transformed into connecting segments of cell boundaries of the grid - flow is measured over those boundaries as a sum of all the fluxes - flow direction is not being accounted for - best measurements are achieved in straight flow in either x- or y-direction on a perpendicular measurement - usage of "end_measure" is mandatory for successful parsing >>>> observer - defines a rectangular area which is observed during the simulation - syntax: | | observer | - / defines the lower left corner in global coordinates - and define the extent of the rectangle in global units - is a string containing the letters h,u,v,t,f depending on the chosen output (h=depth, u=velocity_x, v=velocity_y, t=Tau, f=Froude number) - is the desired number of frames per second. this value will not be reached accurately - is the name of the output - start time in seconds - end time in seconds - start and end values are optional. if missing the observer will be on throughout the simulation >>>> observer_global - works like observer object, but on the whole domain - depending on your domain size this takes a heavy toll on your simulation or is downright impossible because of lack of memory - syntax: | | observer_global | - is a string containing the letters h,u,v,t,f depending on the chosen output (h=depth, u=velocity_x, v=velocity_y, t=Tau, f=Froude number) - is the desired number of frames per second. this value will not be reached accurately - is the name of the output - start time in seconds - end time in seconds - start and end values are optional. if missing the observer will be on throughout the simulation >>>> culvert - defines a culvert object - syntax: | | culvert p1.x p1.y inlet1.x inlet1.y inlet2.x inlet2.y p2.x p2.y outlet1.x outlet1.y outlet2.x outlet2.y width height kst streamline_factor inlet_loss method name | - culvert coupling is defined through 6 points which translate to an in- and outlet and two so called managed areas which are used for 2D transfer of water - the points p1 and p2 (in- and outlet) are supposed to be set outside of the managed areas - they can be well off the actual entry and exit points of the culvert (typical a couple of meters) depending on the scale of your model - successful placement can be reviewed in the system.png - the managed areas defined by the points inlet1, inlet2 and outlet1, outlet2 respectively - these point pairs are considered the actual entry and exit point of the culvert (portals) - they should therefore be perpendicular to streamflow - the area is defined by rectangular shapes, where the line from inlet1 to inlet2 (outlet1, outlet2 respectively) form one side and the width is equal to the width of the culvert or 3 cellsizes, whichever is bigger. - the other parameters are the following: - < width > width of the culvert - default: N/A - < height > height of the culvert - default: N/A - < kst > roughness of the culvert (Strickler-value) - default: N/A - < streamline_factor > a measure for how snug the fit of culvert and surrounding riverbed is - a value of 1.0 should be selected for all normal cases - a value of higher than 1.0 increases throughput for the open flow (unsubmerged inlet and unsubmerged outlet) linear: 1.5 ist 150% or regular throughput - default: N/A - < inlet_loss > the inlet loss coefficient resulting from the shape of the pipe used - default: N/A - < method > the method used for the calculations teleport/hager/preissman_slot - default: N/A - < name > name of the culvert - default: N/A - example: "culvert 2757651.422 1205179.413 2757644.532 1205191.66 2757643.936 1205188.167 2757627.94 1205197.933 2757638.142 1205191.263 2757638.658 1205194.914 5.7 1.3 50.0 1.0 0.5 hager culvert_3" >>>> infiltration - defines a steady rate of infiltration (or evaporation) working on all cells with a Strickler value below threshold. - syntax: | | infiltration | - the threshold values takes into account the original values as given by the k_Strickler_grid, and not altered values due to cell slope - example: "infiltration 3.2 40" ######### ADVANCED SETTINGS ######### >>>> timestep_abort_threshold - sets a limit (in seconds) to the minimum allowed timestep - if the simulation falls below the given timestep, it is cleanly aborted and produces output at the last step completed - default: 0.0001 - example: "timestep_abort_threshold 0.004" >>>> epsilon_desingularization - value used to limit the desingularization of hu and hv - if h to the power of 0.25 is smaller than this value, the calculation of u from hu is not done by division but by desingularization - same applies to v from hv - for the default value of 0.01, this means that for water levels below ~0.31 m desingularization happens - it can make sense to adjust this according to the cell resolution - default: 0.01 - example: "epsilon_desingularization 0.03" >>>> epsilon_edge - any h below this value is considered to be 0 - it applies only to the interpolations of h on the edges, hence the name - default: 0.01 - example: "epsilon_edge 0.001" >>>> slope_limiter - changes the multiplier of the minmod limiter - values should lie between 1.0 and 2.0 - default: 1.3 - example: "slope_limiter 1.0"