Difference between revisions of "LISFLOOD-FP"

From SourceWiki
Jump to navigation Jump to search
Line 51: Line 51:
 
Our tests show that on a linux box the Intel compiler is about 1.5-2x faster than g++.
 
Our tests show that on a linux box the Intel compiler is about 1.5-2x faster than g++.
  
==[[Lisflood_in_matlab|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#File import and export|File import and export]]
 
# [[Lisflood_in_matlab#File import and export|File import and export]]
 
# [[Lisflood_in_matlab#Plotting flow vectors from .Qx and .Qy files|Plotting flow vectors]]
 
# [[Lisflood_in_matlab#Plotting flow vectors from .Qx and .Qy files|Plotting flow vectors]]
 
# [[Lisflood_in_matlab#Making movies from .wd files|Making movies from LISFLOOD-FP output]]
 
# [[Lisflood_in_matlab#Making movies from .wd files|Making movies from LISFLOOD-FP output]]

Revision as of 11:10, 8 June 2009


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

Usage Notes

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 causes large instabilities in the channel model calculation. Testing is ongoing to assess limits for ts_multiple 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 to condor.ggy.bris.ac.uk.

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

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

  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.


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:

  1. File import and export
  2. Plotting flow vectors
  3. Making movies from LISFLOOD-FP output