• Home
  • Accessing Our Facilities
    • Apply for Access
    • HPC Resource List
    • Our Staff
    • Our Research Projects
    • Our Research Software

    • Contributions & Costings
    • HPC Driving Test
  • Documentation
    • Documentation Home
    • Getting Started
    • Advanced Topics
    • Training & Workshops
    • FAQ
    • Policies & Procedures
    • Using the Wiki

    • Data & Report Terminology
    • About this website

    • Reports
  • My Account
    • My HPC Projects
HPC Support
Trace: • lisflood

LISFLOOD-FP

SEAMLESS-WAVE is a developing “SoftwarE infrAstructure for Multi-purpose fLood modElling at variouS scaleS” based on “WAVElets” and their versatile properties. The vision behind SEAMLESS-WAVE is to produce an intelligent and holistic modelling framework, which can drastically reduce iterations in building and testing for an optimal model setting, and in controlling the propagation of model-error due to scaling effects and of uncertainty due statistical inputs.
  • For more information about LISFLOOD-FP: https://www.seamlesswave.com/LISFLOOD8.0

Running LISFLOOD-FP on Comet

The LISFLOOD-FP software is stored within a dedicated container in the /nobackup/shared/containers directory and is accessible to all users of Comet. You do not need to take a copy of the container file; it should be left in its original location.

You can find the container files here:

  • /nobackup/shared/containers/lisflood.2026.07.sif

We normally recommend using the latest (date) version of the container unless you have a specific need for an earlier version of software.

Container Image Versions

We may reference a specific container file, such as lisflood.2026.07.sif, but you should always check whether this is the most recent version of the container available. Simply ls the /nobackup/shared/containers directory and you will be able to see if there are any newer versions listed.

We have provided a convenience script that will automate all of steps needed to run applications inside the container, and access your $HOME, /scratch and /nobackup directories to just two simple commands.

  • /nobackup/shared/containers/lisflood.2026.07.sh

There is a corresponding .sh script for each version of the container image we make available.

Just source this file and it will take care of loading apptainer, setting up your bind directories and calling the exec command for you - and give you a single command called container.run (instead of the really long apptainer exec command) to then run anything you want inside the container, for example - to run lisflood:

$ source /nobackup/shared/containers/lisflood.2026.07.sh
$ container.run lisflood
***************************
 LISFLOOD-FP version 8.1.0 (double)
Rectangular channels only.
_CALCULATE_Q_MODE 1.
***************************

no parameter file specified
$

You can continue to use the container.run command as many times as you need in the same script or same bash session.

We strongly recommend that you use this helper script and the container.run command to run software from inside the container as it will always ensure that you have correctly set up the bind directories for you and you are using the correct container version.


Accessing data

As long as you use the container.run method to launch the applications, you will automatically be able to read and write to files in your $HOME, /scratch and /nobackup directories.

If you run any of the applications inside the container manually, without using the container.run helper you will need to use the –bind argument to apptainer to ensure that all relevant directories are exposed within the container.

Do remember that the container filesystem itself cannot be changed - so you won't be able to write or update to /usr/local, /opt, /etc or any other internal folders - keep output directories restricted to the three areas listed above.


Sample Slurm script

Here is a very simple example of calling LISFLOOD-FP from the container within a Slurm batch job that assumes you are a member of the comet_abc123 HPC project group, and your LISFLOOD-FP parameter file is stored in your /nobackup/proj/comet_abc123 directory:

#!/bin/bash

#SBATCH --partition=gpu-s_free
#SBATCH --account=comet_abc123
#SBATCH --gres=gpu:L40:1
#SBATCH -c 16
#SBATCH --mem=32G

source /nobackup/shared/containers/lisflood.2026.07.sh
container.run lisflood /nobackup/proj/comet_abc123/intput_data_parameter_file

Submit as normal with sbatch lisfloodjob.sh.

Note that we run on the GPU-S_free partition and allocate a single Nvidia L40S card alongside 16 CPU cores and 32GB of RAM. You may need to adjust these values based on the reccomendations of the LISFLOOD-FP documentation.


Building LISFLOOD-FP for Comet

Important!

This section is only relevant for RSE HPC staff or those who want to understand how the LISFLOOD-FP container runtime has been built. If you are only interested in running the software, stop reading here!

Container definition file:

Bootstrap: docker
From: ubuntu:noble

%post
	# Prevent interactive prompts
	export DEBIAN_FRONTEND=noninteractive

	# Update & install only necessary packages
	apt-get update
    
	# Base stuff everything will need
	apt-get install -y aptitude wget zip git less vim 

	apt-get install -y \
		build-essential \
		cmake \
		libnuma-dev \
		libnetcdf-dev \
		nvidia-cuda-dev \
		libcudart12 \
		gcc-14 \
		g++-14
	
	# Remove any downloaded package files - so they dont remain in the built image	
	apt-get clean

	##############################################
	# This flag needs to be set to indicate which CPU architecture we
        # are optimising for.
        AMD_ARCH=1

        if [ "$AMD_ARCH" = "1" ]
        then
                # Compiling on AMD Epyc
                export BASE_CFLAGS="-O3 -march=znver5 -pipe"
                export BASE_CFLAGS_ALT="-O3 -march=native -pipe"
                export MAKE_JOBS=8
        else
                # Compiling on generic system
                export BASE_CFLAGS="-O"
                export BASE_CFLAGS_ALT="-O"
                export MAKE_JOBS=8
        fi

        export CPPFLAGS=""
        export CFLAGS="$BASE_CFLAGS"
        export CFLAGS_ALT="$BASE_CFLAGS_ALT"
        export CXXFLAGS="$CFLAGS"
        export CC=gcc-14
        export CXX=g++-14
        export FC=gfortran-14

	mkdir -p /src

	# Download lisflood source
	cd /src
	wget https://zenodo.org/records/13121102/files/LISFLOOD-FP-v8.2.zip?download=1 -O lisflood.zip
	unzip lisflood.zip
	cd LISFLOOD-FP

	# Configure and compile
	cmake -S . -B build
	cmake --build build

	# Copy binary to /usr/local/bin
	cp -v build/lisflood /usr/local/bin

	# Remove source tree
	rm -rf /src

%environment

%runscript

Container build script:

#!/bin/bash

IMAGE_DATE=`date +%Y.%m`

echo "Loading modules..."
module load apptainer

echo ""
echo "Building container..."
export APPTAINER_TMPDIR=/scratch

echo ""
echo "Container will have date suffix $IMAGE_DATE"

echo ""
echo "Starting build of container ..."
apptainer build \
	--bind $SOURCE_DIR:/mnt \
	lisflood.$IMAGE_DATE.sif lisflood.def 2>&1 | tee lisflood.log

Container runtime helper script:

#!/bin/bash

module load apptainer

IMAGE_NAME=/nobackup/shared/containers/listflood.sif

container.run() {
	# Run a command inside the container...
	# automatically bind the /scratch and /nobackup dirs
	# pass through any additional parameters given on the command line
	apptainer exec --nv --bind /run/user/$UID:/run/user/$UID --bind /scratch:/scratch --bind /nobackup:/nobackup ${IMAGE_NAME} $@
}


Back to software

Previous Next

HPC Support

Table of Contents

Table of Contents

  • LISFLOOD-FP
    • Running LISFLOOD-FP on Comet
    • Accessing data
    • Sample Slurm script
    • Building LISFLOOD-FP for Comet

HPC Service

  • News & Changes

Main Content Sections

  • Documentation Home
  • Getting Started
  • Advanced Topics
  • Training & Workshops
  • FAQ
  • Policies & Procedures
  • Using the Wiki
  • Contact us & Get Help

Documentation Tools

  • Wiki Login
  • RSE-HPC Team Area
Developed and operated by
Research Software Engineering
Copyright © Newcastle University
Contact us @rseteam