LISFLOOD-FP

From SourceWiki
Revision as of 11:49, 12 December 2007 by Tim-fewtrell (talk | contribs)
Jump to navigation Jump to search


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.


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++.