LISFLOOD-FP

This page contains information for the LISFLOOD-FP model developers.

Boundary Conditions

 * 1) In order to ensure that variable boundary conditions (i.e. .bdy file) on the floodplain and in the channel are applied, it is necessary to include two versions of the boundary condition; one for the channel and one for the floodplain with different names. In other words, the .river file should reference downstream1 and the .bci file should reference downstream2 where downstream2 is a copy of downstream1.
 * 2) 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.

Inertial and Channel Interaction
Care should be taken when using the ts_multiple keyword in tandem with the inertial/acceleration version of LISFLOOD-FP. The inertial model creates significantly longer time steps which, when used in conjuction with ts_multiple</tt> causes large instabilities in the channel model calculation. Testing is ongoing to assess limits for ts_multiple</tt> with the diffusive channel and inertial floodplain model combination.

Checkpointing on Condor (beta)
LISFLOOD-FP checkpointing on Condor should work out of the box. Do NOT include a .chkpnt file with the original submission - Condor will manage the checkpointing and file creation correctly. In addition, there has been an upgrade to Condor (v6.x to v7.2) which has been rolled out onto all the machines. The submit host for Condor has also changed from  dylan.ggy.bris.ac.uk </tt> to  condor.ggy.bris.ac.uk </tt>.


 * N.B. Condor with checkpointing functionality is still in "beta" - Check here for updates on when it is operational.:

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

File Output

 * 1) 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.
 * 2) 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.

Windows
“\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 “\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</tt> 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.
 * 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:
 * 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:

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++ your_code.cpp –O3 –o your_code >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++.
 * 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:
 * 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

MATLAB Functions for LISFLOOD-FP
Here is a repository of useful snippets of code for LISFLOOD-FP users in MATLAB:
 * 1) File import and export
 * 2) Plotting flow vectors
 * 3) Making movies from LISFLOOD-FP output