TUFLOW on Linux: Difference between revisions

Content deleted Content added
First draft of an article for release alongside 2026.0
 
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 1:
= Introduction =
StartingSince at versionthe 2026.0.0 release, TUFLOW Classic/HPC will also beis available for Linux, just like TUFLOW FV has been since its inception. Although the application functions the same on either Microsoft Windows or Linux, there are some caveats to consider especially when working across both platforms within a single project.
 
= How to install =
TUFLOW for Linux will be madeis available in two types of packages, <code>.deb</code> for Debian family distributions (like Debian, Ubuntu, Mint, etc.) and <code>.rpm</code> for RHEL family distributions (Red Hat, CentOS, Rocky, etc.).
 
To install TUFLOW for Linux, download the appropriate package for the Linux distribution from the <u>[https://www.tuflow.com/downloads/ TUFLOW Downloads page]</u> and install the package using the appropriate package manager for the distribution. For example, on Ubuntu, the following command can be used in the terminal (making sure to use the correct path to the downloaded <code>.deb</code> file):
These can be downloaded and installed with tools that are available on any Linux distribution by default. It is recommended that admins use <code>dnf</code> or <code>apt</code> respectively, to ensure that dependencies are automatically downloaded and installed as needed.
 
: <code>sudo apt install ./tuflow_2026.0.0~beta.1-1_amd64.deb</code>
 
These can be downloaded and installed with tools that are available on any Linux distribution by default. It is recommended that admins use <code>dnf</code> or <code>apt</code> respectively, to ensure that dependencies are automatically downloaded and installed as needed.
 
= How to use =
Line 17 ⟶ 21:
By no means a complete overview, but these are some aspects to consider:
<ol>
*'''Slashes and backslashes'''<br/>Windows uses backslashes in file and directory paths like <code>D:\Project\results\</code>. Linux uses forward slashes instead like <code>~/Project/results</code> and will often interpret characters following backslashes as special characters. TUFLOW will usually deal with either format on either system in configuration files, but when writing scripts or commands (in powershell, terminal, etc) users should remain aware. Also, logs and outputs referring to files will use the format appropriate to the system it is running on.
*'''Drive letters'''<br/>Drive letters like <code>D:</code> are specific to Windows. Configuration files that need to be usable across both systems should avoid their use and instead use relative paths like <code>../Model/Materials_001.csv</code> or absolute paths that assume the file is on the current drive like <code>/Project/model/Materials_001.csv</code>.
*'''Character case in names'''<br/>Windows is case-insensitive, which means that files called <code>Hello.TXT</code> and <code>hello.txt</code> are considered to have the same name, and cannot exist in the same location. Linux is case-sensitive and considers uppercase characters and lowercase characters to be different, and so those two files can exist side by side. This is very relevant if TUFLOW users use one spelling in one place, and the other in another - whereas Windows might interpret both references to point to the same file, on Linux they would result in two separate files. Similarly, if a file's name is spelled with different case from its actual name, a Windows application would find it, and a Linux application might not. (see below)
Line 23 ⟶ 27:
</ol>
 
To ensure maximum compatibility of models across systems, TUFLOW will do its best to match names in the model files in the same way between Windows and Linux. <!-- This may surprise some new users on Linux and can be disabled with a command-line flag if undesirable, in future releases.-->
 
As a general principle, TUFLOW will default to trying to run a model with as little change as possible required across both platforms, writing results in a form that is appropriate to the platform it runs on. <!-- Future releases may provide users with more control over this behaviour, if needed.-->
 
= Common Questions Answered (FAQ)=
Line 33 ⟶ 37:
*'''Performance'''<br/> Servers or workstations that are dedicated for the running of models can be configured to run TUFLOW and the necessary supporting software (e.g. CodeMeter, NVIDIA GPU drivers, etc.) and very little else, using Linux. There may also be small performance differences in general between an executable built and optimised for Windows or Linux.
*'''Infrastructure cost'''<br/> Especially relevant when running virtual machines dedicated to running TUFLOW, or many of those in the cloud, most distributions of Linux do not require a licence whereas Windows does. This can substantially reduce the cost of infrastructure.
*'''HPC tooling'''<br/> Automation of running TUFLOW models across many computers or in the cloud can be greatly simplified with tooling designed for that purpose. Many such tools are available "off the shelf", but mostly on Linux. (e.g. SLURM, PBS/Torque, etc.). Similarly, containerisation (e.g. Docker, Podman, LXC) typically requires running on Linux as well.
: ''Note:'' HPC tooling refers to job scheduling and automation software for managing large numbers of model runs. Containerisation packages applications and their dependencies into portable and reproducible runtime environments.
</ol>
 
Line 41 ⟶ 46:
Like Windows, Linux offers a variety of scripting options that can help minimise the direct use of the command line by users, if that is desirable. Bash shell scripts are as easy to write and run as batch files are on Windows. Running Python or even PowerShell on Linux is easy to set up as well.
 
However, given the nature of the application and Linux as an operating system, TUFLOW users on Linux would do well to try and understand some of the very basicbasics of using TUFLOW from the command line and the TUFLOW Support team can assist with that.