Changelog for TUFLOW 2025.0.0

Release date: 22 Jan 2025

  1. General Notes
  2. Backwards Compatibility
  3. New Features and Enhancements
    1. TUFLOW CATCH
    2. Tracer Advection in TUFLOW 1D (ESTRY)
    3. SCS Infiltration
    4. HPC HQ Boundary Stability Default Value Change
    5. Quadtree HQ Boundary Processing Optimisation
    6. SWMM: Additional Time Series Datasets
    7. Support for Writing TINs to the SMS 2DM Mesh Format
    8. New TIN Triangulation Method
    9. New Timestepping Method for HPC
    10. GPKG Write Optimisations
    11. WIBU Retry Count Includes All License Types
    12. SWMM: Prevent Unnecessary Error when Routing Time is Smaller than Report Step
    13. New Option and Default Change for HPC DP Check
    14. Include SWMM Messages on TUFLOW Wiki
    15. Add ERROR if SWMM Node is Higher Than Inlet at The Same Node
    16. Sink-Source Map Output in Quadtree
    17. Advection-Dispersion Output Enhancements
    18. Console Output and Behaviour Changes
  4. Licencing
  5. Bug Fixes
    1. Domain Construction
    2. Boundaries and Links
    3. 1D Network Domains – EPA SWMM
    4. Outputs and Check Files
    5. GIS Formats
    6. Other

General Notes

The TUFLOW 2025 release has changed the version numbering system. From the 2025 release and onwards, version numbering will use the year.minor.patch convention. The year corresponds to the major version number e.g. this release is 2025.0.0. Major releases are the only releases that will admit the possibility of implementing changes to defaults, making other breaking changes or affecting backwards compatibility. Advice will be provided on this in corresponding changelogs (e.g. the Backward Compatibility Section within this changelog). Throughout the year, additional minor releases (releases containing new features and bug fixes, but no breaking changes) would increment the minor version number (e.g. 2025.1.0) and bug fix only releases would increment the patch version number (e.g. 2025.0.1).

The release notes that have previously accompanied each TUFLOW release have been replaced by a changelog (this document), which offers a more concise overview of the changes in each release. Any extra details or information are now added directly to the TUFLOW User Manual. Major TUFLOW releases will be accompanied by a new version of the manual with a corresponding version number (e.g. a 2025 TUFLOW Manual accompanies this release). If other non-major TUFLOW releases require changes to the manual, the manual will be updated and released at the same time.

Backwards Compatibility

The 2025.0.0 release may cause changes in results if upgrading from a previous build. As always, it is recommended that when switching to a new build with an established model, test runs are carried out and comparisons made between the old and new builds (subtracting the two maximum water level (h) data sets and reviewing any differences is an easy way to do this).

Changes to defaults and backward compatibility commands are listed in the TUFLOW User Manual

New Features and Enhancements

TUFLOW CATCH

Major Feature

Support has been added for TUFLOW CATCH integration. TUFLOW CATCH is a whole-of-catchment platform that can simulate hydrologic, hydraulic, pollutant export, and receiving waterway processes. TUFLOW CATCH is a separate executable, however relies on TUFLOW HPC functionality added in the 2025 release to simulate the catchment hydraulics.

The TUFLOW CATCH User Manual contains information, examples, and demo models.

Tracer Advection in TUFLOW 1D (ESTRY)

Major Feature

Tracer advection has been added to TUFLOW 1D (ESTRY). All channel types are supported, however only via the 2d_bc “SX” linking type. Dispersion of tracers, 1D source term, and 1D initial conditions are not yet supported.

See the TUFLOW User Manual for more information.

SCS Infiltration

Major Feature

Support for the SCS infiltration method has been added to TUFLOW HPC (in addition to the already supported IL/CL, Green-Ampt, and Horton methods). SCS infiltration is widely used because of its simplicity and data availability.

See the TUFLOW User Manual for more information.

HPC HQ Boundary Stability Default Value Change

The default value for the command HPC HQ Boundary Filter Constant (introduced in 2023-03-AD) has been changed to 5. This can provide improved stability for HQ boundaries. For backwards compatibility, set this to 1.

Quadtree HQ Boundary Processing Optimisation

The HQ Boundary processing in Quadtree has been optimised so that models using HQ boundaries that select a large number of cells (along a single line) should see pre-processing speed ups. An example of this is where a single boundary line is snapped to the entire perimeter of the code polygon. In one test case, where the HQ boundary selected 3,900 cells, the pre-processing time went from 321 seconds to 5 seconds (roughly x50 speed up).

SWMM: Additional Time Series Datasets

Discharges and cumulative volumes entering SWMM pipe networks from the 2D domain is now supported in the GPKG time series output written by TUFLOW for TUFLOW/SWMM linked models. Similar to ESTRY, negative discharges indicate that flow is surcharging from the pipe network into the 2D domain.

See the TUFLOW User Manual for more information.

Support for Writing TINs to the SMS 2DM Mesh Format

Support has been added to write TINS to the SMS 2dm format instead of the SMS TIN format when using the command Read TIN Zpts or any of the Z-shape commands that create a TIN. The 2dm format can be read into QGIS in addition to SMS for viewing and editing. The 2dm is the default for the 2025 release. The following command can be used to specify the format used:

TIN Output Format == 2DM

New TIN Triangulation Method

Beta Functionality

A new TIN triangulation method ‘Method B’ has been implemented as a beta functionality. The current default method, ‘Method A’, distributes points along breaklines to encourage triangle edges along breaklines. Method B enforces breaklines, produces more balanced triangulations, and is more robust. This can be activated using the following command:

TIN Triangulation Approach == Method B

See the TUFLOW User Manual for more information.

New Timestepping Method for HPC

A new timestepping method has been developed that allows for larger timesteps in models that experience rapid wetting and drying. This method is the new default option.

HPC Timestep Approach == Method B

See the TUFLOW User Manual for more information.

GPKG Write Optimisations

The writing of GeoPackage files has been sped up. The speedup will depend on the specific model and the users hardware (hard drive type, etc). The speedup is especially apparent for large check files such as _grd, _zpt, and _uvpt. Comparative testing between the 2023-03-AF and the 2025.0.0 builds has seen write times of 7 to 30 times faster.

WIBU Retry Count Includes All License Types

The WIBU Retry Count setting will now loop through all license types when trying to find an available license. Previously, this only searched for BMT hardware licenses.

SWMM: Prevent Unnecessary Error when Routing Time is Smaller than Report Step

When running a TUFLOW-SWMM model, the SWMM project file (inp) is passed to an embedded SWMM library. The project file includes a routing timestep. However, TUFLOW-SWMM simulations ignore the routing timestep and forces the SWMM model to adopt the TUFLOW timestep. While the routing timestep is not used, the SWMM library complains if it is larger than the report step. TUFLOW-SWMM models now force the routing timestep value sent to the library to be less than the report step preventing this unnecessary error. For example, the configuration in the image below would have caused an error in previous versions but is now automatically handled.

New Option and Default Change for HPC DP Check

A “CHECK” option has been added to the HPC DP Check command and set as the new default. Specifying “ERROR” will apply the previous default, giving an error message and stopping the simulation if using TUFLOW HPC with the double precision (DP) executable. The “OFF” option can still be used to remove the check entirely.

The double precision (DP) executable is generally slower than the single precision (SP) executable, however, applications such as long-term simulations and/or simulations with groundwater may require double precision for an accurate result. The single precision executable should be preferred for applications that do not necessitate using double precision.

Include SWMM Messages on TUFLOW Wiki

SWMM ERROR/WARNING/CHECK messages have been verified and added to the TUFLOW Wiki: 6xxx TUFLOW Messages.

Add ERROR if SWMM Node is Higher Than Inlet at The Same Node

It is invalid to have a node invert with a higher elevation than an inlet at the same node. ERROR 6024 is now issued when this occurs.

Sink-Source Map Output in Quadtree

The Sink-Source (SS) map output has been added to Quadtree (this map output is already supported in Classic and HPC).

Advection-Dispersion Output Enhancements

  • Added support for AD check files inclusion / exclusion with the Write Check Files Include and Exclude options. For example, the .tcf command Write Check Files Exclude == ad grd will exclude both the AD (_ad_check) and the grid (_grd_check) check files.
  • Added support for AD mass output (Write Mass == ON in .adcf control file) when using TUFLOW HPC with Sub-Grid Sampling (SGS). Previously WARNING 4016 was issued and the AD Mass Output was disabled.
  • Added minimum and maximum AD concentrations for each tracer to screen output at each map output interval if using Verbose == ON .tcf option.

Console Output and Behaviour Changes

  • Removed some console output when reading data from NetCDF files (e.g. gridded rainfall or stress boundaries). This is removed to improve performance and reduce output clutter. This is still available by using the Verbose == ON .tcf option.
  • If TUFLOW is initialised with the “batch” command line argument (-b) and no input .tcf file is specified, the user input is no longer required after the licence check is performed. Previously, this would display “Press Enter to Release WIBU Licences”. This allows a check for, and release of, licences without needing user input.

Licencing

  • Added flexibility to share the GPU Hardware and AD add-on module licences between TUFLOW and TUFLOW-FV. This must be the same lock type (Hardware (USB-2), Software (Digital File) or Cloud (Digital File)) and licence type (Local or Network) as the TUFLOW engine licence of the simulation. If the licence type is Local, it must also reside on the same lock. For more information on licence types see TUFLOW Licencing.
  • Removed check for separate ESTRY licence, this is included with TUFLOW engine licence.
  • Added check for TUFLOW CATCH licence when simulating TUFLOW CATCH models.

Bug Fixes

Domain Construction

  • Fixed a should not be here - counter >= mPoly error that could be triggered in Quadtree models when code polygons that contained holes existed within the hole of another code polygon.
  • Fixed a memory access violation error that would cause TUFLOW to crash during pre-processing if setting the initial groundwater level using either the Set IGW Depth or Set IGW Level commands without explicitly defining a layer number.
  • Fixed an issue where 2d_zsh polygons located outside of the 2D domain stopped the model during pre-processing with ERROR 2230. This has been downgraded to CHECK 2230 if the 2d_zsh polygon is entirely outside of the 2D domain.
  • When a merge polygon spreads across multiple Quadtree domains (e.g. nest levels), the merge polygon can apply an elevation of 99999 at some TIN vertices. This can cause incorrect geometry updates and can happen to Z Shape, FC Shape, Layered FC Shape, Variable Z Shape and Create TIN Zpt polygons that use the ‘Merge’ option. WARNING 2934 is now issued when at least one merge polygon vertex is located outside of a quadtree sub-domain and CHECK 2934 issued when at least one merge polygon vertex is located inside quadtree cells from a different nesting polygon. To avoid this, it is recommended to snap elevation points to every 2d_zsh polygon vertex if the polygon spans multiple Quadtree domains, or use the “NO MERGE” option and supply elevations as needed.
  • Added ERROR 2935 to stop simulations if no cell size was defined.
  • Added ERROR 2928 to stop simulations if it appears that a soils file (tsoilf) file is missing a comma between values (e.g. a line had 1, 0.6 0.3 where a comma is missing between 0.6 and 0.3).
  • Fixed an issue that could cause memory corruption when an empty (i.e. no geometry) 2d_qnl layer was used as an input in a Quadtree model. WARNING 2812 is written if an empty 2d_qnl is used.
  • Fixed a bug that could occur in Quadtree models run on CPU hardware, where TUFLOW attempted to pull infiltration results from GPU memory even if Hardware == CPU was specified.
  • Fixed an issue with reading HEC-DSS files for boundary conditions (as described in the TUFLOW User Manual) when using Quadtree. Quadtree models previously reported ERROR: Internal error (number of values not allocated large enough in read_hecdss_file) and now work as expected.
  • Fixed an issue when a single QT or HT boundary line overlapped on itself in a Quadtree model that could incorrectly trigger ERROR 2030.
  • The application of global rainfall losses has been made consistent with material losses. There was a very slight discrepancy in how global rainfall losses were applied, as they were removed before the simulation started which meant the global losses were applied to the input rainfall timesteps, rather than the model timestep. If there was rainfall left over after losses were applied in a given timestep, the remaining rainfall was applied over the entire timestep. This resulted in decreased intensity over that timestep.
  • Fixed an issue where HQ boundaries that did not have a slope defined (‘b’ attribute left empty) would be automatically assigned a slope of 0.00001 in Quadtree models. Quadtree models with this set up now give ERROR 2017, consistent with TUFLOW HPC.
  • Fixed a stack overflow error that could occur when running a Quadtree model with a large number of HX connected cells.
  • Fixed an issue with 2d_sa inflows at streamlines (read in using Read GIS Stream) in HPC. When streamlines were specified, they were not being used (despite being in the _sac_check) files and flow was applied using the default SA approach (initially going to the lowest cell and then distributed between wet cells). If Read GIS SA Stream Only was specified this was working correctly. This issue did not affect Classic or Quadtree simulations.
  • Added ERROR 1462 to stop simulations if a 1D node is connected to both a SX and HX boundary. For backward compatibility this ERROR message can be downgraded to CHECK, using the Overlapping SX HX Boundary == CHECK command.

  • Added ERROR 1463 to stop simulations that use HX connections with the 1D Advection Dispersion (AD) module. HX connections are not supported in the 1D AD module.

1D Network Domains – EPA SWMM

  • Added ERROR 6027 if no data is loaded from a SWMM input file and if the extension was not “.inp”.
  • Fixed an issue where using the Check INP Save Date == WARNING command could lead to an infinite loop if the GeoPackage file was newer than the .inp file.
  • Fixed an issue where an invalid SX connection was not giving an error. SX connections are only valid at outfall nodes or standalone nodes to convey subcatchment flows to a 2D domain. TUFLOW now gives ERROR 6009 for invalid SX connections.

Outputs and Check Files

  • Fixed an issue with XMDF outputs where datasets that contained only small values had the minimums and maximums truncated to 0.0.
  • Fixed an issue where the “GW_Z” and “IGW” groundwater attributes and the “z_map_cutoff” attribute were missing from the grid check file when using Quadtree. These attributes are now included and the output is equivalent to HPC models.
  • Fixed an issue introduced in the 2023-03 release where some GIS check outputs were not being produced when running a TUFLOW-Flood Modeller simulation. The affected layers were: x1d_chans_check, x1d_nodes_check, xWLLo_check, and xWLLp_check.
  • Fixed an issue where the SWMM time-series output GPKG file was not producing the correct spatial indexes. This caused the file to not display correctly in QGIS, unless the spatial index was deleted and recreated.
  • Fixed a bug with GeoTIFF outputs that could cause an error when reading the output with GDAL (and potentially other GeoTIFF readers). The bug occurred if the GTCitationGeoKey was present in the referenced projection GeoTIFF (TIF Projection == <path/to/reference.tif>). The GTCitationGeoKey is now written correctly to the output GeoTIFF.
  • Fixed a bug where malformed characters would appear in the TUFLOW log file (.tlf) if the input boundary condition files had blank columns after the data. This did not impact model results.
  • Fixed an issue which could cause TUFLOW to crash with “access violation” if not using hazard outputs without using Materials for defining roughness (e.g. Set CnM).
  • Fixed an issue which could cause TUFLOW to crash if Write GIS Zpts was specified in the Geometry Control File (.tgc) when SGS was enabled.
  • Fixed an issue with the SMS Triangle output option not working if XMDF was the only map output data format specified.
  • Fixed a grid misalignment issue of the high-resolution (HR) output between the entire model and output zones. HR grids produced for output zones are now aligned with the entire model output.
  • Changed the message number for ‘Face elevations are NOT used in HR Grid Output’ from WARNING 3543 to WARNING 3560 due to a duplication.
  • Fixed a bug, that occured only in Quadtree models, with the high-resolution (HR) DEM check file (_DEM_Z_HR) and HR depth output. This bug was introduced in the 2023-03-AA release, when water level lines (WLL) were incorporated in HR outputs. This bug does not affect hydraulic computations.

GIS Formats

  • Fixed an issue with the Coordinate Reference System (CRS) being written to GeoTIFFs. The change reduces the number of “Tags” in the TIFF header when information in the reference GeoTIFF does not include all geo-referencing information (previously empty tags were written). This change also removes duplicate tags.
  • Fixed an issue where GPKG outputs, check files, and log files were not being grouped into centralised databases if no check files were being written.
  • Fixed an issue where models using GPKG as the output GIS format could report ERROR 0636 during the simulation. This could be triggered if at some point during the pre-processing, CHECK 2470 was triggered (it has to be this specific check message). Then after that, the model wrote a lot of entries to the messages_P layer (e.g. over 100 entries).
  • Messages are no longer written immediately to the message output GIS layer during the simulation when using the GPKG output format. This reverses a change made in the 2023-03-AF build as it could cause slower run times when a lot of messages were being written during the simulation.
  • Fixed an issue that could cause TUFLOW to crash during pre-processing when an input attribute had over 1,000 characters (counted by combining all fields as a comma delimited string) and one of the attributes contained a line break.
  • Removed CHECK 0659 which could slow down pre-processing of layers that contained a lot of fields.

Other

  • Fixed an issue with the package model function where the TUFLOW External Stress Files (.tesf) were left out of the packaged files. These are now accurately retained.
  • Fixed an issue with the package model function where files referenced in ESTRY Network or Table Link layers were not processed if the layer was in a GeoPackage file already included.
  • Better support added for special characters such as ë. If in doubt, use UTF-8 encoding (note, not UTF-8 BOM) for files that contain any special characters.
  • Updated the BMT company name that is reported to the console and TUFLOW Log File (.tlf), to BMT Commercial. Previously, both BMT WBM or WBM Oceanics were used.