Difference between revisions of "LISFLOOD-FP"
Tim-fewtrell (talk | contribs) |
Tim-fewtrell (talk | contribs) |
||
Line 45: | Line 45: | ||
==MATLAB Functions for LISFLOOD-FP== | ==MATLAB Functions for LISFLOOD-FP== | ||
Here is a repository of useful snippets of code for LISFLOOD-FP users in MATLAB: | Here is a repository of useful snippets of code for LISFLOOD-FP users in MATLAB: | ||
− | # [[Lisflood_in_matlab | + | # [[Lisflood_in_matlab#File import and export|File import and export]] |
Revision as of 16:15, 18 March 2008
This page contains information for the LISFLOOD-FP model developers.
Usage Notes
Channel Specification
- The river depth assigned in the channel solver is set as an elevation relative to the same datum as the DEM. However, using LiDAR or SRTM data often returns a value for the water surface, however spurious this value may be. Furthermore, channel information is often supplied as a depth rather than a channel bed elevation. Therefore, it is best to assign the channel elevation in the DEM as the bankfull height and specify the bed elevation in the .river file as your channel depth below the bankful height (elevation).
Boundary Conditions
- When calculating the boundary flux on the floodplain (flux from xsz/ysz-out) in FREE mode, LISFLOOD-FP uses the slope between DEM[xsz-1] and DEM[xsz]. Therefore, it is important that the penultimate slope is indicative of the overall floodplain slope. This becomes particularly important in urban areas where buildings near the domain edge will create a large, artificial slope causing more water to leave the domain than should in reality.
File Output
- The qoutput, toutput and qloutput file output options are not compatible with the alternative ascii header option. This is because the timestep and flux outputs are calculated at the boundary and the output grid is offset by 0.5*dx for simplified display in GIS packages. It is therefore, not possible to assume anything about the coordinate system used in the alternative ascii header and change the grid offset accordingly.
- The qloutput option may not function fully at the corner cells of the domain. Qlim domain fluxes appear to be calculated so it is purely a variable storage problem. Be wary of using qloutput to derive flows out of the domain as a result of this. The toutput option does not appear to suffer from the same problem although care should be taken when analysing these values at the domain edges.
Latest compiler information
Windows
- Microsoft C++ (Windows)
- Bristol University have a site CHEST licence for this, so no costs to install. This compiler can be used from a stand alone command line or using the MS Visual Studio 2005 debugging environment. To use the command line, go to the start menu and find:
“\Start Menu\Programs\Microsoft Visual Studio 2005\Visual Studio Tools\ Visual Studio 2005 Command Prompt”
This will setup the paths and links to libraries the compiler needs and open a command line window. Change directory to where your source code is and type:
>cl your_code.cpp /O2
- Intel C++ v9.1 (Windows)
- Academic licence costs £61 per seat through Polyhedron. This compiler requires the Microsoft C++ windows compiler to be installed, but you can also use it on its own as a command line compiler. It is also integrated into the Visual Studio 2005 environment if you wish to use it that way. To use the command line, go to the start menu and find:
“\Start Menu\Programs\Intel(R) Software Development Tools\ Intel(R) C++ Compiler 9.1\Build Environment for IA-32 applications”.
This will setup the paths and links to libraries the compiler needs and open a command line window. Change directory to where your source code is and type:
>icl your_code.cpp /fast
Note: the /fast option may not generate a working executable for older processor architectures. In this case you can use:
>icl your_code.cpp /O3
which generates an executable that is almost as quick.
So far we've found that the Intel compiler gives a speed up of about 5x over our our previous Borland Builder-compiled version of the model.
Linux
- g++ (free)
- This compiler can be used by logging into the linux machines dylan or brian through SSH secure shell. To use it, change directory to where your source code is and type:
>g++ your_code.cpp –O3 –o your_code
- Intel C++ v9.1 (linux)
- Academic licence costs £61 per seat through Polyhedron. Log into the linux machine dylan through SSH secure shell, change directory to where the source code is and type
>source /opt/intel/cc/10.0.023/bin/iccvars.csh
Then compile the code using
>icpc lisflood.cpp -O3 -static -o lisflood
Our tests show that on a linux box the Intel compiler is about 1.5-2x faster than g++.
MATLAB Functions for LISFLOOD-FP
Here is a repository of useful snippets of code for LISFLOOD-FP users in MATLAB: