13.3 Installing TUFLOW

TUFLOW is available for both Windows (Section 13.3.1.1) and Linux (Section 13.3.1.2). The software can be obtained by either downloading the executables directly from the TUFLOW Website (Section 13.3.4.1) or via the TUFLOW Installer (Section 13.3.4.2).

This section provides an overview of the available builds, installation structure and considerations for selecting the appropriate precision and platform.

13.3.1 Overview of the TUFLOW Distribution

TUFLOW is distributed in various formats depending on operating system and provides separate executables for single or double numerical precision.

13.3.1.1 TUFLOW on Windows

The TUFLOW Windows release consists of two different versions of the executable as follows:

  • TUFLOW_iSP_w64.exe
  • TUFLOW_iDP_w64.exe

The iSP and iDP refer to whether the release was compiled using single precision floating point numbers or double precision floating point. Further discussion on single and double precision is provided in Section 13.3.2 below.

The w64 refers to Windows 64-bit. This means that the release was compiled as a 64-bit process binary which will run as a 64-bit process. 64-bit TUFLOW executables can only be run on Windows 64-bit platforms. Whilst TUFLOW no longer provides 32-bit versions, the w64 remains in the name for compatibility reasons. The 32-bit version of TUFLOW is only available for TUFLOW releases prior to 2017-09. Users should use the 64-bit versions where possible.

The Model Platform command can be used to force a simulation to use a w32 or w64 version.

13.3.1.2 TUFLOW on Linux

TUFLOW is also available for Linux platforms. The TUFLOW Linux release is available in three formats. <release> is a placeholder for the release version number (e.g. 2026.0.0):

  • Debian family distributions (Debian, Ubuntu, Mint, etc.) tuflow_<release>-1_amd64.deb e.g. tuflow_2026.0.0-1_amd64.deb
  • RHEL family distributions (Red Hat, CentOS, Rocky, etc.) tuflow-<release>-1.el9.x86_64.rpm e.g. tuflow-2026.0.0-1.el9.x86_64.rpm
  • Compressed tar archive (.tar.gz) tuflow-<release>-linux-tar.gz e.g. tuflow-2026.0.0-linux-tar.gz

The ‘-1’ denotes the version of the package itself. Typically, this will be ‘-1’, but a ‘-2’ or more would indicate identical software in a package that was updated for other reasons.

On Linux, the files follow a similar naming convention, with a “tuflow-isp” and “tuflow-idp” executable.

Note that for TUFLOW on Linux, there is no mention of 64-bit (like TUFLOW on Windows, Section 13.3.1.1). This is due to 2026.0 being the first TUFLOW version released on Linux, which only contains a 64-bit executable. There are no 32-bit TUFLOW builds for Linux.

See the TUFLOW Wiki page TUFLOW on Linux for further details.

13.3.1.3 Build Identification

Each TUFLOW executable includes a Build ID which uniquely identifies the release, precision and platform. The Build ID is written to the .tlf (Section 14.4.1). For example, for the 2026.0.0 release, single precision, Windows 64-bit version, the Build ID would be 2026.0.0-iSP-w64.

Specific builds can be selected using either:

These commands can be useful for ensuring consistent builds are used across a project.

Note that minor changes in results can occur between different TUFLOW builds. Please refer to Section 18 and the TUFLOW Classic/HPC Changelog.

13.3.1.4 System Library Files

Additional library files, .dll on Windows and .so on Linux, are required for the following purposes. Note that all files supplied with a build must remain together in the same directory.

  • TUFLOW_LINK allows other schemes such as 12D DDA, FloodModeller 1D, EPA SWMM and XPSWMM to dynamically link with TUFLOW.
  • TUFLOW_USER_DEFINED allows users to customise TUFLOW to suit their purposes (see Section 13.3.3).
  • TUFLOW_HPC / TUFLOW QPC contains the TUFLOW HPC and TUFLOW Quadtree functionality
  • .fatbin binary GPU kernel files – older TUFLOW releases may not contain these files as they are only used for GPU simulations. See list below.
  • Other supplied libraries are third party components (such as NetCDF and TIFF), and system DLLs required by TUFLOW.

A number of .fatbin (Fat Binary) files are required to run TUFLOW HPC/Quadtree simulations on a GPU card. These are:

  • hpcKernels_nSP.fatbin
  • hpcKernels_nDP.fatbin
  • qpcKernels_nSP.fatbin
  • qpcKernels_nDP.fatbin

13.3.2 Single and Double Precision

Floating point numbers are stored using either single precision (32-bit real) or double precision (64-bit real):

  • Single precision: approx. 6-9 significant digits
  • Double precision: approx. 15-17 significant digits

Both TUFLOW Classic and TUFLOW HPC are available in single (iSP) and double (iDP) precision. The reasons to use single or double precision differ between the two solvers, as outlined in the sections below.

13.3.2.1 TUFLOW Classic

TUFLOW Classic uses an implicit matrix-based solution and solves for water level rather than depth (see Section 13.3.2.2 - TUFLOW HPC). As water levels may include large elevation values, precision can become important. For example:

  • In a model with elevations below 10mAD (meters above datum), adding a very small rainfall increment can be represented accurately in both single and double precision.
    • For example, if a cell has an elevation of 5mAD and 0.000001m of rainfall is applied (within a timestep), the water level in the cell would rise to 5.000001mAD.
  • In a model with high elevations (e.g. 1000.000mAD), adding a very small rainfall increment may not change the stored value in single precision due to rounding. This can introduce mass loss. However, if double precision is used, the correct water level is retained and mass is conserved.
    • For example, if a cell has an elevation of 1000.000mAD and 0.000001m of rainfall is applied, the water level in the cell would rise to 1000.000001mAD. In single precision, this would be stored as 1000.000mAD (i.e. the added rainfall has disappeared). In double precision, this would be stored as 1000.00000100000mAD.

Whether double precision is required for TUFLOW Classic depends on factors such as elevation, cell size and timestep. There is no simple rule-of-thumb. The recommended approach is to:

  1. Run the model in both single (iSP) and double (iDP) precision modes
  2. Compare results and mass error: If the results are unacceptably different or if the mass error is significantly lower in iDP, then iDP should be used.

Note that the choice of single or double precision also impacts simulation times and memory allocation. Double precision (iDP) versions of TUFLOW Classic:

  • Have approximately 25% longer simulation time
  • Require up to twice the memory usage which limits the ability to run concurrent simulations

In summary, if the results are consistent between iSP and iDP, the iSP version is recommended for improved performance and lower memory demand.

13.3.2.2 TUFLOW HPC

TUFLOW HPC uses an explicit solution and solves for depth rather than water level (see Section 13.3.2.1 - TUFLOW Classic). As the calculations are not performed on large elevation values, the precision issues described for TUFLOW Classic generally do not apply. As a result, most TUFLOW HPC models are accurately solved using single precision.

However, precision testing is still recommended where simulations involve:

  • Very small inflows
  • Long-term simulations
  • Simulations with fine-scale processes, such as groundwater
  • 1D-2D linked models that use the ESTRY 1D engine (see Chapter 5) at high elevations

To test which precision to use, it is recommended to:

  1. Run the model in both single (iSP) and double (iDP) precision modes
  2. Compare results and mass error: If the results are unacceptably different or if the mass error is significantly lower in iDP, then iDP should be used.

Single precision should be used for TUFLOW HPC simulations unless testing indicates otherwise.

Note that double precision on GPU hardware can be significantly slower. On some devices, up to four times slower than single precision.

If the TUFLOW HPC simulation is started using:

  • Single precision (iSP): The HPC solver runs in single precision
  • Double precision (iDP): CHECK 2420 will be output by default, recommending single precision. This can be turned off or set to “ERROR” using the HPC DP Check command.

13.3.3 Customising TUFLOW using TUFLOW_USER_DEFINED.dll

The TUFLOW_USER_DEFINED.dll is a legacy feature for TUFLOW Classic on Windows that was primarily used for customising hazard category outputs and is no longer supported as the same service cannot be offered for HPC given its GPU code base.

For the up to date method for customising hazard category outputs, see Section 11.2.3.1.

13.3.4 Installation Options

TUFLOW can be installed on Windows and/or Linux using one of the following methods:

  • Executable download (Section 13.3.4.1) – manually downloading and managing the TUFLOW build files
  • TUFLOW Installer (Section 13.3.4.2) – installing TUFLOW using an automated installer

Both methods provide the same files. For consistency and ease, it is recommended to use the TUFLOW Installer.

13.3.4.1 Executable Download

TUFLOW can be downloaded directly from the TUFLOW website via the TUFLOW Downloads Page. To download the files, an End User Licence Agreement (EULA) must be accepted.

These files should be extracted into an application directory dedicated to a single version of TUFLOW. Do not mix files from different versions. When a new release or patch becomes available, it is recommended that the existing TUFLOW files are archived before copying the updated files into the engine directory.

13.3.4.2 TUFLOW Installer

The TUFLOW Installer provides an automated method for installing TUFLOW on both Windows and Linux systems.

The installer package can be downloaded as a .msi file from the TUFLOW website via the TUFLOW Downloads Page. Running the installer will guide the user through the installation process and place the TUFLOW executables and associated files into the selected installation directory.

When installing TUFLOW using the TUFLOW Installer, it is recommended that the software is installed in a location accessible to all users on the system. However, if required, TUFLOW can be installed for individual use only. Users should consult with their IT department.

Each new TUFLOW minor/major release installed using the TUFLOW Installer will be placed in a separate directory and will not replace existing installations. This allows multiple TUFLOW versions to be accessed, which can be useful for maintaining consistency across different projects. It is recommended to use the default installation directory suggested by the installer. Note that patch releases will replace existing installations. For example, 2026.0.0 will be replaced by 2026.0.1.

During installation, an End User Licence Agreement (EULA) will be displayed and it must be accepted before the installation can continue.

Once installation is complete, the TUFLOW executables can be run in the same manner as the manually installed versions.