TUFLOW FV User Manual 2026.2
  1. 9  Model Construction: WQ Simulation Class
  • TUFLOW FV User Manual
  • Overview
  • 1  Introduction
  • 2  Architecture
  • 3  Getting Started
  • 4  Folders, Control Files and Data Layers
  • 5  Model Construction: 2D HD Simulation Class
  • 6  Model Construction: 3D HD Simulation Class
  • 7  Model Construction: AD Simulation Class
  • 8  Model Construction: ST Simulation Class
  • 9  Model Construction: WQ Simulation Class
  • 10  Model Construction: PT Simulation Class
  • 11  Managing And Starting Simulations
  • References
  • Appendices
    • A  Commands
    • B  Science

Table of contents

  • 9.1 Overview
  • 9.2 Water Quality
    • 9.2.1 Command Status
    • 9.2.2 Description
    • 9.2.3 None
    • 9.2.4 TUFLOW
  • 9.3 Water Quality Configuration
  • 9.4 Initial Conditions
    • 9.4.1 Command Status
    • 9.4.2 Description
    • 9.4.3 Spatially Constant
      • 9.4.3.1 Two Dimensional
      • 9.4.3.2 Three Dimensional
    • 9.4.4 Spatially Varying
      • 9.4.4.1 Two Dimensional
      • 9.4.4.2 Three Dimensional
    • 9.4.5 Restart File
  • 9.5 Boundary Conditions
    • 9.5.1 Command Status
    • 9.5.2 Description
      • 9.5.2.1 Step 1: Boundary Model Implementations
      • 9.5.2.2 Boundary Location Definition
      • 9.5.2.3 Step 3: Boundary Condition Block
      • 9.5.2.4 Input Data For Boundary Conditions
        • 9.5.2.4.1 WQ Header, WQ Scale, WQ Offset and WQ Default
    • 9.5.3 Water Level
    • 9.5.4 Inflow/Outflow
    • 9.5.5 Stage Discharge
    • 9.5.6 Ocean Circulation Model
    • 9.5.7 Mass Flux
      • 9.5.7.1 FC
      • 9.5.7.2 FC_POLY
      • 9.5.7.3 FCM
      • 9.5.7.4 FC_GRID
    • 9.5.8 Scalar Concentration
      • 9.5.8.1 SCALAR
      • 9.5.8.2 CP
      • 9.5.8.3 CP_POLY
    • 9.5.9 Transport File
  • 9.6 Hydraulic Structures
    • 9.6.1 Command Status
    • 9.6.2 Description
  • 9.7 Model Outputs
    • 9.7.1 Command Status
    • 9.7.2 Description
      • 9.7.2.1 Output Model Implementations
      • 9.7.2.2 Output Block
        • 9.7.2.2.1 Output Parameters
    • 9.7.3 Mesh
    • 9.7.4 Points
    • 9.7.5 Profiles
    • 9.7.6 Polyline
    • 9.7.7 Structure
      • 9.7.7.1 Bubble Plumes
    • 9.7.8 Mass Balance
    • 9.7.9 Mass
    • 9.7.10 Restart File

9  Model Construction: WQ Simulation Class

9.1 Overview

This chapter describes how to construct a Water Quality (WQ) simulation class in TUFLOW FV.

The WQ simulation class extends the Advection Dispersion simulation class described in Chapter 7 by introducing water quality specific model classes and configurations. This chapter assumes familiarity with hydrodynamic and advection dispersion model construction and documents only extensions required for water quality simulations.

9.2 Water Quality

9.2.1 Command Status

Required.

9.2.2 Description

A single water quality model implementation (configurable into multiple simulation classes) is available to support simulation of water quality processes. Supported water quality model implementations are summarised in Table 9.1, with links to the relevant implementation sections below. Commands are listed in Table 9.2.

Table 9.1: Water Quality Implementations
Model Implementation Description

None

Disables water quality simulation.

TUFLOW

Uses the TUFLOW Water Qualuty Module.

Table 9.2: Water Quality Commands
Command Description

Water Quality Model

Conditional - Required for the water quality simulation class. Activates water quality simulation.

9.2.3 None

This model is the default and excludes the simulation of water quality.

! Water Quality Disabled
Water Quality Model == None           ! {None} | TUFLOW

9.2.4 TUFLOW

This model includes the simulation of water quality using the TUFLOW Water Quality Module.

! TUFLOW Water Quality Enabled
Water Quality Model == TUFLOW         ! {None} | TUFLOW

In order to activate the TUFLOW Water Quality Module, temperature (Section 7.3), salinity (Section 7.2) and atmospheric heat exchange (Section 7.7) must also be simulated. Salinity can be set to zero everywhere if freshwater systems are to be simulated.

9.3 Water Quality Configuration

Once activated, the simulation of water quality is configured by issuing the Water Quality Control File command.

! Configure Water Quality Simulation
Water Quality Control File == ..\wqm\WQ_023.fvwq  ! {No default} filepath

The setup of the Water Quality Control File, and therefore the configuration of a water quality simulation, is described in the Water Quality Module User Manual. At the highest level, three water quality simulation classes are available, with full descriptions provided in the Water Quality Module Manual, as follows.

  • DO,
  • Inorganics, and
  • Organics

Other than the above and boundary/output specifications (see Section 9.5 and Section 9.7), only two other water quality related commands are recognised by the TUFLOW FV control file as follows.

  • The first sets the Water Quality Model Directory. If specified, this is concatenated with the Water Quality Control File to specify the complete control file path.
  • The second sets Cell Water Quality Depth (in metres), which is the minimum water depth for which water quality calculations will be undertaken at any location.
! Mandatory Supporting Models
Include Heat == 1                                 ! {0} OFF | 1 ON
Include Temperature == 1, 0                       ! {0} OFF | 1 ON, {0} Density Coupling Disabled | 1 Density Coupling Enabled
Include Salinity == 1, 0                          ! {0} OFF | 1 ON, {0} Density coupling disabled | 1 Density coupling enabled

! Configure Water Quality Simulation
Water Quality Model == TUFLOW                     ! {None} | TUFLOW
Water Quality Control File == .\WQ_023.fvwq       ! {No default} filepath
Water Quality Model Directory == ..\wqm           ! {No default} directory path
Cell Water Quality Depth == 0.2                   ! {0.02} m

9.4 Initial Conditions

9.4.1 Command Status

Optional.

9.4.2 Description

Water column initial conditions are recommended for each simulated water quality constituent. The supported initial condition model implementations are the same as those presented in Section 7.10.2 and Section 8.7.2, and are summarised in Table 7.21. Water quality specific initial condition commands are listed in Table 9.4. The following sections describe how these initial condition implementations are extended for water quality simulations.

Table 9.3: Initial Conditions Implementations
Model Implementation Description

Spatially Constant

Sets initial conditions using spatially constant fields in 2D or as horizontal uniform profiles in 3D.

Spatially Varying

Sets initial constituent values using 2D or 3D cell based CSV inputs.

Restart File

Reads initial conditions from a previous simulation restart file.

Table 9.4: Initial Conditions Commands
Command Description

Initial WQ Concentration

Optional - Sets a spatially constant concentration for each simulated water quality constituent. This value is also constant for all water depths.

Initial Scalar Profile

Optional - Used to assign spatially constant but depth varying 3D initial condition profiles.

Initial Condition 2D

Optional - Used to specify spatially varying depth averaged initial constituent fields.

Initial Condition 3D

Optional - Used to specify spatially varying 3D initial constituent fields.

Restart File

Optional - Used to initialise salinity, temperature, suspended sediment, tracer and wq constituent fields from a prior simulation.

9.4.3 Spatially Constant

9.4.3.1 Two Dimensional

This method sets a single value across the entire model domain for each simulated water quality constituent.

! Spatially Constant Water Quality Initial Conditions
Initial WQ Concentration == 8.0, 10.0, 0.1, 2.0, 5.5, 1.5       ! {0.0} WQ_1 concentration, {0.0} WQ_2 concentration, {0.0} WQ_3 concentration, {0.0} WQ_4 concentration, {0.0} WQ_5 concentration, {0.0} WQ_6 concentration

The nature and order of constituents in this command depends on the selected water quality simulation class as configured in the water quality control file. These are described in the water quality module manual for DO, Inorganics and Organics simulation classes.

9.4.3.2 Three Dimensional

This method sets a single horizontally constant value for each vertical layer across the entire model domain for each simulated water quality constituent using the Initial Scalar Profile command.

! Spatially Constant 3D Initial Profile
Initial Scalar Profile == ..\model\bc_dbase\IC_Profile_037.csv  ! {No default} IC profile filepath

To set salinity, temperature and six (for example) water quality initial conditions as a laterally uniform profile, the referenced csv file requires the following columns:

  • DEPTH: Depth values (m) from the surface downwards (positive downward) for assigning concentrations
  • SAL: Corresponding salinity (psu) values at each of the depths in the DEPTH column
  • TEMP: Corresponding temperatures (C) at each of the depths in the DEPTH column
  • WQ_1: Corresponding water quality constituent 1 concentrations at each of the depths in the DEPTH column
  • WQ_2: Corresponding water quality constituent 2 concentrations at each of the depths in the DEPTH column
  • WQ_3: Corresponding water quality constituent 3 concentrations at each of the depths in the DEPTH column
  • WQ_4: Corresponding water quality constituent 4 concentrations at each of the depths in the DEPTH column
  • WQ_5: Corresponding water quality constituent 5 concentrations at each of the depths in the DEPTH column
  • WQ_6: Corresponding water quality constituent 6 concentrations at each of the depths in the DEPTH column

Example initial scalar profile CSV.

IC_Profile_011.csv
DEPTH, SAL, TEMP, TRACE_1, WQ_1, WQ_2, WQ_3, WQ_4, WQ_5, WQ_6
 0.0, 35.0, 25.0, 12.0, 8.0, 23.0, 0.5, 3.0, 4.0, 1.0
 5.0, 35.0, 18.0, 12.0, 4.0, 25.0, 0.5, 2.0, 5.0, 0.0
10.0, 35.0, 11.0, 20.0, 0.0, 50.0, 0.5, 1.0, 8.0, 0.0

WQ_1, WQ_2 etc. are key headers. The names of water quality constituents are not recognised and are instead automatically associated with ordered water quality constituents. The nature and order of these constituents depends on the selected water quality simulation class as configured in the water quality control file. These are described in the water quality module manual for DO, Inorganics and Organics simulation classes.

9.4.4 Spatially Varying

9.4.4.1 Two Dimensional

Initial conditions can be set as spatial varying (depth averaged) across the model domain for water quality constituent concentrations within a 2D model with the Initial Condition 2D command.

! Spatially Varying 2D Initial Conditions
Initial Condition 2D == ..\model\bc_dbase\IC_ML_2D_037.csv        ! {No default} 2D IC filepath

This command was previously described in Section 5.15.4 and Section 8.7.4.

To set salinity, temperature and six (for example) water quality initial conditions as a laterally uniform profile, the referenced csv file requires the following columns:

  • ID: 2D cell ID
  • WL: Corresponding water level values at each of the 2D cells in the ID column
  • U: Corresponding U velocity values at each of the 2D cells in the ID column
  • V: Corresponding V velocity values at each of the 2D cells in the ID column
  • SAL: Corresponding salinity (psu) values at each of the 2D cells in the ID column
  • TEMP: Corresponding temperatures (C) at each of the 2D cells in the ID column
  • WQ_1: Corresponding water quality constituent 1 concentrations at each of the 2D cells in the ID column
  • WQ_2: Corresponding water quality constituent 2 concentrations at each of the 2D cells in the ID column
  • WQ_3: Corresponding water quality constituent 3 concentrations at each of the 2D cells in the ID column
  • WQ_4: Corresponding water quality constituent 4 concentrations at each of the 2D cells in the ID column
  • WQ_5: Corresponding water quality constituent 5 concentrations at each of the 2D cells in the ID column
  • WQ_6: Corresponding water quality constituent 6 concentrations at each of the 2D cells in the ID column

Not all 2D cell IDs need be included in the csv file, so if this command is issued after any of the three commands listed in Section 9.4.3 then this Initial Condition 2D will overwrite only those cells specified. This command can be issued in either 2D or 3D simulations.

Example initial condition 2D file.

IC_ML_2D_037.csv - This lake resides over six TUFLOW FV cells
ID, WL, U, V, SAL, TEMP, WQ_1, WQ_2, WQ_3, WQ_4, WQ_5, WQ_6
23, 1.1, 0.0, 0.0, 1.6, 20.0, 9.0, 10.0, 7.0, 1.0, 0.5, 1.0
28, 1.1, 0.0, 0.0, 2.3, 20.0, 9.0, 10.0, 7.0, 1.2, 0.6, 3.0
29, 1.1, 0.0, 0.0, 1.8, 20.0, 7.0, 11.0, 8.0, 1.0, 0.7, 1.0
42, 1.1, 0.0, 0.0, 1.2, 20.0, 0.0, 10.0, 7.0, 1.0, 0.5, 2.0
45, 1.1, 0.0, 0.0, 2.4, 25.0, 0.0, 10.0, 7.0, 1.1, 0.9, 0.1
46, 1.1, 0.0, 0.0, 2.3, 20.0, 0.0, 20.0, 7.0, 1.0, 0.5, 0.1

WQ_1, WQ_2 etc. are key headers. The names of water quality constituents are not recognised and are instead automatically associated with ordered water quality constituents. The nature and order of these constituents depends on the selected water quality simulation class as configured in the water quality control file. These are described in the water quality module manual for DO, Inorganics and Organics simulation classes.

9.4.4.2 Three Dimensional

Initial conditions can be set at every three dimensional cell across the model domain for water quality constituent concentrations within a 3D model (only) with the Initial Condition 3D command.

! Spatially Varying 3D Initial Conditions
Initial Condition 3D == ..\model\bc_dbase\IC_ML_3D_037.csv        ! {No default} 3D IC filepath

This command was previously described in Section 6.8.3 and Section 8.7.4. To set salinity, temperature and six (for example) water quality concentration initial conditions, the referenced csv file requires a column for each as follows.

  • SAL: Corresponding salinity (psu) values at each of the 2D cells in the ID column
  • TEMP: Corresponding temperatures (C) at each of the 2D cells in the ID column
  • WQ_1: Corresponding water quality constituent 1 concentrations at each of the 2D cells in the ID column
  • WQ_2: Corresponding water quality constituent 2 concentrations at each of the 2D cells in the ID column
  • WQ_3: Corresponding water quality constituent 3 concentrations at each of the 2D cells in the ID column
  • WQ_4: Corresponding water quality constituent 4 concentrations at each of the 2D cells in the ID column
  • WQ_5: Corresponding water quality constituent 5 concentrations at each of the 2D cells in the ID column
  • WQ_6: Corresponding water quality constituent 6 concentrations at each of the 2D cells in the ID column

Not all 3D cell IDs need be included in the csv file, so if this command is issued after any of the three commands listed in Section 9.4.3 then this Initial Condition 3D will overwrite only those cells specified. This command can only be issued in 3D simulations.

IC_ML_3D_037.csv - This lake resides over 2 3D cells (2 2D cells x 3 layers deep)
ID, WL, U, V, SAL, TEMP, WQ_1, WQ_2, WQ_3, WQ_4, WQ_5, WQ_6
23, 1.1, 0.0, 0.0, 1.6, 20.0, 9.0, 10.0, 7.0, 1.0, 0.5, 1.0
24, 1.1, 0.0, 0.0, 2.3, 20.0, 9.0, 10.0, 7.0, 1.2, 0.6, 3.0
25, 1.1, 0.0, 0.0, 1.8, 20.0, 7.0, 11.0, 8.0, 1.0, 0.7, 1.0
26, 1.1, 0.0, 0.0, 1.2, 20.0, 0.0, 10.0, 7.0, 1.0, 0.5, 2.0
27, 1.1, 0.0, 0.0, 2.4, 25.0, 0.0, 10.0, 7.0, 1.1, 0.9, 0.1
28, 1.1, 0.0, 0.0, 2.3, 20.0, 0.0, 20.0, 7.0, 1.0, 0.5, 0.1

9.4.5 Restart File

Restart files can be used to provide initial conditions for water quality constituent concentrations in the same manner as described in Section 5.15.5 and Section 8.7.5. The combination of water quality constituents (and other variables) must be the same in the restart file and restarted simulation. Water quality properties specified in the water quality control file may change between simulations.

! Read Restart File For WQ Initial Conditions
Restart File == .\log\CC_20251201_20260101_WQ_001.rst             ! {No default} Restart filepath

9.5 Boundary Conditions

9.5.1 Command Status

Required.

9.5.2 Description

This section describes how boundary conditions are configured within the Water Quality simulation class. It extends Section 7.11.2 and describes the available water quality boundary model implementations as well as the structure and configuration of boundary condition blocks used to assign water quality input data. TUFLOW FV syntax examples are provided for each boundary type.

Boundary conditions in TUFLOW FV are assigned using the same workflow described in Section 5.16.2. Water quality commands related to each step of this workflow are described in the following subsections.

Each boundary condition requires specification of water quality concentration (or flux) where simulated. The corresponding specification method for each boundary condition type described in Section 5.16 is provided following. For clarity, boundary conditions that share common specification methods are grouped.

9.5.2.1 Step 1: Boundary Model Implementations

Table 7.23 summarises the boundary condition implementations available for advection dispersion and provides example applications. These are the same as those required for water quality and are therefore not repeated here. This section builds on the advection dispersion boundary condition framework described in Section 7.11.2. Water quality configurable boundary implementations are summarised in Table 9.5 and follow the same or similar structure as the advection dispersion implementations. Links in the Model Implementation column provide direct access to sections that describe configuration options, modelling considerations and TUFLOW FV syntax examples for each boundary type.

Table 9.5: Boundary Condition Model Class - Model Implementations
Model Implementation Description

Water Level

Water level boundary conditions. Typically used to represent concentration boundaries in coastal and estuarine or downstream tailwater conditions in river simulations.

Inflow/Outflow

Inflow or outflow boundary conditions. Used to include river and catchment inflow concentrations, outfalls or flow extractions.

Stage Discharge

User specified or automatic relationship between water level and flow, with associated concentrations. Used to represent tailwater conditions in riverine models.

Ocean Circulation Model

Fully specified boundary conditions derived from global ocean circulation models such as HYCOM or BRAN. Used to force ocean currents, salinity and temperature fields at open boundary conditions in coastal models.

Mass Flux

Direct mass input/output boundaries. For example to add solid waste material to the water column.

Scalar Concentration

Boundary conditions that set the value of scalar variables such as temperature, salinity, suspended sediment, tracers and water quality constituents. These can be applied as external or internal boundaries.

Transport File

File with hydrodynamic information from a previous simulation. The file is used to run a subsequent simulation using a sub-set of hydrodynamic calculations, allowing the model to run more efficiently. Typically used for testing scenarios where the hydrodynamics do not change (pathogen analysis for example).

9.5.2.2 Boundary Location Definition

This boundary condition workflow is described in Section 5.16.2. No further updates to boundary location definitions are required for the water quality simulation class.

9.5.2.3 Step 3: Boundary Condition Block

This boundary condition workflow was described in Section 5.16.2. As presented for the AD simulation class, in this step the selected boundary model implementation and boundary location are linked to input data using a boundary condition block (BC block). In general, water quality boundary conditions extend those of advection dispersion and use the same or similar structure presented in Section 7.11.2.3.

Additional WQ boundary condition block commands are summarised in Table 9.6.

Table 9.6: Additional WQ Boundary Condition Block Commands
Command Description

WQ Header

Conditional - Required for water quality boundary conditions that reference constituent headers in a boundary data file. Maps WQ constituent input headers in the boundary data file to simulated WQ constituent fields.

WQ Scale

Optional - Applies multiplicative scale factors to WQ constituent boundary inputs.

WQ Offset

Optional - Applies additive offsets to WQ constituent boundary inputs after scaling.

WQ Default

Optional - Sets fallback WQ constituent boundary values when specified WQ constituent headers are not found.

9.5.2.4 Input Data For Boundary Conditions

The input data methods for water quality simulation are the same as those presented in Section 7.11.2.4.

9.5.2.4.1 WQ Header, WQ Scale, WQ Offset and WQ Default

The specification of water quality boundary condition data parallels that described in Section 7.11.2.4. Specifically, an additional and parallel suite of commands within a BC block are issued as follows.

WQ Header ==

WQ Scale ==

WQ Offset ==

WQ Default ==

There is no time or hydrodynamic information in these commands, with each entry related to a water quality constituent only. The nature and order of these constituents depends on the selected water quality simulation class as configured in the water quality control file. These are described in the water quality module manual for DO, Inorganics and Organics simulation classes.

For example, a simulation of just dissolved oxygen (DO simulation class) requires:

! Water Quality Header for dissolved oxygen
WQ Header == DOxy_mgL ! {WQ_1} header

These associated commands apply to the same water quality constituent order:

! Water Quality Scale for dissolved oxygen
WQ Scale == 1.43 ! {1.0} WQ_1 scale

! Water Quality Offset for dissolved oxygen
WQ Offset == -1.0 ! {0.0} WQ_1 offset

! Water Quality Default for dissolved oxygen
WQ Default == 8.0 ! {NaN} WQ_1 default

9.5.3 Water Level

These boundaries (WL, WLS and WL_CURT) are typically, although not exclusively, applied to represent open tidal boundaries (oceanic or estuarine) where dissolved constituent or suspended sediment exchange occurs.

The corresponding specification of water quality concentrations is a direct extension of the boundary blocks already established for an AD simulation. The following example illustrates a WL boundary configuration for a simulation that includes salinity, temperature and one water quality constituent. The boundary condition blocks for WLS and WLS_CURT follow the same structure, differing only in the initial BC == specifier.

As water quality simulations increase in complexity and additional constituents are included, the corresponding constituent headers, scales, offsets and defaults are added in order as comma separated numbers to the above commands. The nature and order of these constituents depends on the selected water quality simulation class as configured in the water quality control file. These are described in the water quality module manual for DO, Inorganics and Organics simulation classes.

! Polyline (Nodestring) Boundary Location Definition
Read GIS Nodestring == ..\model\gis\2d_ns_Ocean_001_L.shp

! Water Level
BC == WL, Ocean, ..\bc_dbase\Tide_20230101_20240101.csv     ! boundary_type, location_ID, data_filepath
    BC Header == Time_UTC, Tide_mMSL, Sali, Temperature     ! {TIME}, {WL} (mRL), {SAL} (psu), {TEMP} (C)
    BC Scale == 1.0, 1.0, 1.1                               ! {1.0} WL scale, {1.0} Salinity scale, {1.0} Temperature scale
    BC Offset == 0.25, 0.0, 0.0                             ! {0.0} WL offset, {0.0} Salinity offset, {0.0} Temperature offset
    BC Default == 0.0, 35.0, 20.0                           ! {NaN} WL default, {NaN} Salinity default, {NaN} Temperature default
    WQ Header == Oxy_mgL                                    ! {WQ_1} WQ_1 header
    WQ Scale == 2.3                                         ! {1.0} WQ_1 scale
    WQ Offset == 1.0                                        ! {0.0} WQ_1 offset
    WQ Default == 8.0                                       ! {NaN} WQ_1 default
End BC

9.5.4 Inflow/Outflow

These boundaries (Q, QC QC_POLY, QC_GRID, QCM and QG) are typically, although not exclusively, applied to represent dissolved constituent or suspended sediment exchange. Only Q boundaries apply momentum flux.

The corresponding specification of the water quality components is a direct extension of the flow boundary blocks already established for an AD simulation. The following example illustrates a Q boundary configuration for a simulation that includes salinity, temperature and six water quality constituents (in an Inorganics Water Quality Simulation Class). The boundary condition blocks for the other flow boundaries follow the same structure, differing only in the initial BC == specifier.

As water quality simulations increase in complexity and additional constituents are included, the corresponding constituent headers, scales, offsets and defaults are added in order as comma separated numbers to the above commands. The nature and order of these constituents depends on the selected water quality simulation class as configured in the water quality control file. These are described in the water quality module manual for DO, Inorganics and Organics simulation classes.

! Polyline (Nodestring) Boundary Location Definition
Read GIS Nodestring == ..\model\gis\2d_ns_Catchment_001_L.shp

! Inflow
BC == Q, Creek1, ..\bc_dbase\Flow_20230101_20240101_23.csv  ! boundary_type, location_ID, data_filepath
    BC Header == Time_UTC, Flow_Q, Sali, Temperature        ! {TIME}, {Q} (m3/s), {SAL} (psu), {TEMP} (C)
    BC Scale == 1.0, 1.0, 1.1                               ! {1.0} Q scale, {1.0} Salinity scale, {1.1} Temperature scale
    BC Offset == 0.25, 0.0, 0.0                             ! {0.0} Q offset, {0.0} Salinity offset, {0.0} Temperature offset
    BC Default == 10.0, 35.0, 20.0                          ! {NaN} Q default, {NaN} Salinity default, {NaN} Temperature default
    WQ Header == DO_23, Si, Ammon, NO3, FRP_d, BGA          ! {WQ_1} Dissolved oxygen header, {WQ_2} Silicate header, {WQ_3} Ammonium header, {WQ_4} Nitrate header, {WQ_5} FRP header, {WQ_6} Phytoplankton header
    WQ Scale == 2.3, 1.0, 10.0, 1.0, 1.1, 32.0              ! {1.0} Dissolved oxygen scale, {1.0} Silicate scale, {1.0} Ammonium scale, {1.0} Nitrate scale, {1.0} FRP scale, {1.0} Phytoplankton scale
    WQ Offset == 0.0, 2.0, 0.0, -11.0, 1.0, 0.0             ! {0.0} Dissolved oxygen offset, {0.0} Silicate offset, {0.0} Ammonium offset, {0.0} Nitrate offset, {0.0} FRP offset, {0.0} Phytoplankton offset
    WQ Default == 8.0, 100.0, 1.0, 10.0, 1.0, 2.0           ! {NaN} Dissolved oxygen default, {NaN} Silicate default, {NaN} Ammonium default, {NaN} Nitrate default, {NaN} FRP default, {NaN} Phytoplankton default
End BC

9.5.5 Stage Discharge

The boundary setup process follows the 2D HD simulation class described in Section 5.16.5, while water quality constituents are handled as described for the AD simulation class in Section 7.11.5.

9.5.6 Ocean Circulation Model

Ocean circulation boundaries are used to apply one way forcing from external ocean or estuary model predictions to a TUFLOW FV domain. They are typically used to force a local simulation using fields from a larger scale hydrodynamic or global circulation model, such as HYCOM.

The boundary setup process is the same as that described for AD in Section 7.11.7. For flow leaving the model, water quality constituent concentrations are taken from the adjacent internal model cells. For flow entering the model, a zero gradient concentration boundary is applied by default. If constituent concentrations need to be specified at an OBC_GRID boundary, use the SCALAR boundary type described in Section 9.5.8. The WQ Header, WQ Scale, WQ Offset and WQ Default commands are not supported for this boundary type.

9.5.7 Mass Flux

This suite of boundary conditions allows for the addition of water quality constituent mass to a simulation as a flux, without the addition of water. For example, this supports simulation of processes such as pollutant release with dredging. The most complex boundary condition in the suite (FC_GRID) can be used to force TUFLOW FV with predictions from other numerical models (such as CFD) that simulate high resolution spatial and temporal processes such as diffuser discharges. Regardless, all boundaries apply a flux of water quality constituent mass as a rate to the cell or cells specified. This flux is then included in subsequent calculations.

The available flux boundary types are listed in Table 9.7. The required units of fluxes are as follows.

  • For water quality constituents simulated in mg/m\(^3\) (i.e. \(\mu\)g/L): mg/s
  • For water quality constituents simulated in g/m\(^3\) (i.e. mg/L): g/s
  • For water quality constituents simulated in 10\(^4\)CFU/m\(^3\) (i.e. CFU/100mL): 10\(^4\)CFU/s

As water quality simulations increase in complexity and additional constituents are included, the corresponding constituent headers and fields are added in order as comma separated numbers to the commands below. The nature and order of these constituents depends on the selected water quality simulation class as configured in the water quality control file. These are described in the water quality module manual for DO, Inorganics and Organics simulation classes.

Table 9.7: Mass Flux Boundaries
Boundary Type Description

FC

Mass flux applied to an individual 2D cell using a timeseries input.

FC_POLY

Mass flux applied to 2D cells whose centroids fall within a specified polygon using a timeseries input.

FCM

Mass flux applied to a moving point with time varying X and Y coordinates from a timeseries input.

FC_GRID

Mass flux applied to a gridded set of cells using NetCDF time varying flux and weighting data.

9.5.7.1 FC

  • Spatial: Constant
  • Location: Point
  • Data format: CSV
  • Required input variables: TIME and flux values
  • Notes:
    • FC is the conceptual parallel to the QC boundary described in the 2D HD simulation class
! Point Boundary Location Definition
Read GIS SA == ..\model\gis\2d_sa_Fluxes_005_P.shp

! Mass Flux
BC == FC, SF23, ..\bc_dbase\F01_002.csv                       ! boundary_type, location_ID, data_filepath
    BC Header == time_hr, SalFlux, TempFlux, DOFlux           ! {TIME}, {FLUX_SAL} (g/s), {FLUX_HEAT} (J/C_p/density/s), {FLUX_WQ_1} (g/s)
    BC Update dt == 900.                                      ! {0.0} Boundary update interval (s)
End BC

9.5.7.2 FC_POLY

  • Spatial: Constant
  • Location: Polygon
  • Data format: CSV
  • Required input variables: TIME and flux values
  • Notes:
    • FC_POLY is the conceptual parallel to the QC_POLY boundary described in the 2D HD simulation class
! Region Boundary Location Definition
Read GIS SA == ..\model\gis\2d_sa_Fluxes_005_R.shp

! Mass Flux In Polygon
BC == FC_POLY, SF23P, ..\bc_dbase\F01_002.csv                 ! boundary_type, location_ID, data_filepath
    BC Header == time_hr, SalFlux, TempFlux, DOFlux           ! {TIME}, {FLUX_SAL} (g/s), {FLUX_HEAT} (J/C_p/density/s), {FLUX_WQ_1} (g/s)
    BC Update dt == 900.                                      ! {0.0} Boundary update interval (s)
End BC

9.5.7.3 FCM

  • Spatial: Mass flux applied to moving point
  • Location: Moving Point
  • Data format: CSV
  • Required input variables: TIME X Y and flux values
  • Notes:
    • FCM is the conceptual parallel to the QCM boundary described in the 2D HD simulation class
! Moving Point Flux
BC == FCM, ..\bc_dbase\Ship_Ballast_001.csv                     ! boundary_type, data_filepath
    BC Header == time_hr, Lon, Lat, SalFlux, TempFlux, DOFlux   ! {TIME}, {X} (m or decimal degrees), {Y} (m or decimal degrees), {FLUX_SAL} (g/s), {FLUX_HEAT} (J/C_p/density/s), {FLUX_WQ_1} (g/s)
    BC Update dt == 900.                                        ! {0.0} Boundary update interval (s)
End BC

9.5.7.4 FC_GRID

  • Spatial: Gridded
  • Location: Grid
  • Data format: NetCDF
  • Required input variables: Grid location definition, TIME, flux values and WEIGHT
  • Notes:
    • FC_GRID is the conceptual parallel to the QC_GRID boundary described in the 2D HD simulation class
! Grid Location Definition
Grid Definition File == example_diffuser.nc                     ! NetCDF file containing coordinates used to define the grid map
    Grid Definition Variables == longitude, latitude, Z         ! X and Y coordinate variable names in the NetCDF
    Grid Definition Label == diffuser_grid                      ! Grid name
    Vertical Coordinate Type == elevation                       ! {Elevation} | Depth | Sigma | Height
End Grid

! Model Mass Flux From Outfall/Diffuser
BC == FC_GRID, diffuser_grid, example_diffuser.nc               ! boundary_type, location_ID, data_filepath
    BC Header == time, weight, DOFLX                            ! {TIME}, {WEIGHT}, {FLUX_WQ_1} (g/s) - NetCDF variable names
    BC Time Units == hours                                      ! {ISODATE | HOURS} | DAYS | MINUTES | SECONDS  -  Hours since the BC Reference Time (01/01/1990 00:00:00 or 0.0)
    BC Update dt == 900.                                        ! {0.0} Boundary update interval (s)
    Vertical Coordinate Type == elevation                       ! {Elevation} | Depth | Sigma | Height
End BC

9.5.8 Scalar Concentration

This suite of boundary conditions allows for the specification of water quality concentrations independent of corresponding hydrodynamic boundary specifications. This specification has been described in Section 7.11.9.

As water quality simulations increase in complexity and additional constituents are included, the corresponding constituent headers and fields are added in order as comma separated numbers to the commands below. The nature and order of these constituents depends on the selected water quality simulation class as configured in the water quality control file. These are described in the water quality module manual for DO, Inorganics and Organics simulation classes.

9.5.8.1 SCALAR

  • Spatial: Constant
  • Location: Point, Line or Polygon
  • Data: CSV
  • Required Input Variables: TIME, concentrations
  • Notes:
    • SCALAR is applied to a corresponding hydrodynamic boundary, including point (QC), line (Q, WL, WLS) or polygon (QC_POLY)
    • Each SCALAR BC block must specify a location_ID that has already been declared and associated with a hydrodynamic boundary
! Point Boundary Location Definition
Read GIS SA == ..\model\gis\2d_sa_MyInflows_001_P.shp

! Catchment C2 Concentrations
BC == SCALAR, C2, ..\bc_dbase\C01_002.csv                       ! boundary_type, location_ID, data_filepath
    BC Header == time_hr, Sal, Tmp                              ! {TIME}, {Salinity} (g/L), {Temperature} (C)
    WQ Header == Oxy41, Sil, Amm, Nit, FRP, phyto               ! {WQ_1} header, {WQ_2} header,  {WQ_3} header, {WQ_4} header, {WQ_5} header, {WQ_6} header
    BC Update dt == 900.                                        ! {0.0} Boundary update interval (s)
End BC

9.5.8.2 CP

  • Spatial: Variable
  • Location: Point(s)
  • Data: CSV Profile
  • Required Input Variables: DEPTH, concentrations
  • Notes:
    • Points are specified by a SA points file, each with its own csv profile file
    • DEPTH is the first column in the csv file and positive is downwards
    • Typically used with the warmup horizontal scalar diffusivity model (see Section 7.5.7) to generate smooth initial conditions saved to a restart file used to then initialise subsequent simulations
! Point Location Definition
Read GIS SA == ..\model\gis\2d_sa_Monitoring_011_P.shp

! Instream Concentrations
BC == CP, Site2, ..\bc_dbase\Site2_002.csv                                  ! boundary_type, location_ID, data_filepath
    BC Header == Depth, Sal_psu, Tmptre, Oxy41, Sil, Amm, Nit, FRP, phyto   ! {DEPTH}, {Salinity} (psu), {Temperature} (C), {WQ_1} header, {WQ_2} header,  {WQ_3} header, {WQ_4} header, {WQ_5} header, {WQ_6} header
End BC

9.5.8.3 CP_POLY

  • Spatial: Variable
  • Location: Polygon(s)
  • Data: CSV Profile
  • Required Input Variables: DEPTH, concentrations
  • Notes:
    • Polygons are specified by a SA polygon file, each with its own csv profile file
    • DEPTH is the first column in the csv file and positive is downwards
    • Typically used with the warmup horizontal scalar diffusivity model (see Section 7.5.7) to generate smooth initial conditions saved to a restart file used to then initialise subsequent simulations
! Polygon Location Definition
Read GIS SA == ..\model\gis\2d_sa_Monitoring_001_R.shp

! Instream Concentrations
BC == CP_POLY, Site23, ..\bc_dbase\Site23_021.csv                           ! boundary_type, location_ID, data_filepath
    BC Header == Depth, Sal_psu, Tmptre, Oxy41, Sil, Amm, Nit, FRP, phyto   ! {DEPTH}, {Salinity} (psu), {Temperature} (C), {WQ_1} header, {WQ_2} header,  {WQ_3} header, {WQ_4} header, {WQ_5} header, {WQ_6} header
End BC

9.5.9 Transport File

The use of transport files for water quality modelling is the same as described in Section 7.11.10.

9.6 Hydraulic Structures

9.6.1 Command Status

Information Only.

9.6.2 Description

Water quality concentrations are passed through hydraulic structures in the same manner as other advected and dispersed quantities.

9.7 Model Outputs

9.7.1 Command Status

Optional - WQ features can be optionally added to the model output implementations specified during 2D HD, 3D HD, AD or ST model construction.

9.7.2 Description

Water quality related outputs are generated in the same manner described in Section 5.18, Section 6.11 and Section 7.13. These can be written together with other outputs (such as water levels) or in standalone output files.

9.7.2.1 Output Model Implementations

The output model implementations for the Water Quality simulation class are the same as presented in Table 5.73.

9.7.2.2 Output Block

9.7.2.2.1 Output Parameters

Output parameters (computed variables) for the Water Quality simulation class, including units, are presented in this appendix of the Water Quality Manual.

Diagnostic outputs for the Water Quality simulation class, including units, are presented in this appendix of the Water Quality Manual.

User specified output parameters are only required for points, profiles and mesh output types. All other output types report automatically configured output parameters. Water quality computed or diagnostic variables can be specified individually with the Output Parameters command using specific names (as listed in the Appendices above) or as complete sets, via use of keywords wq_all and wq_diag_all. The makeup of the latter varies depending on the water quality configuration and simulation class.

! NetCDF mesh output format
Output == netcdf
    Output Parameters == WQ_DISSOLVED_OXYGEN_MG_L, WQ_FRP_MG_L  ! Dissolved oxygen (mg/L), FRP (mg/L)
    Output Interval == 3600.                                    ! {0.0} Output interval (s)
    Suffix == WQ                                                ! {No default} Output file suffix
End Output
! NetCDF mesh output format
Output == netcdf
    Output Parameters == wq_all                                 ! All water quality constituents
    Output Interval == 3600.                                    ! {0.0} Output interval (s)
    Suffix == WQ                                                ! {No default} Output file suffix
End Output
! NetCDF mesh output format
Output == netcdf
    Output Parameters == wq_diag_all                            ! All water quality diagnostic variables
    Output Interval == 3600.                                    ! {0.0} Output interval (s)
    Suffix == WQ                                                ! {No default} Output file suffix
End Output

9.7.3 Mesh

Mesh output blocks are described in Section 5.18.3 and Section 6.11.3. These can be extended with inclusion of water quality keywords as per the manual Appendices above, or entirely new blocks can be created with only these quantities as needed. Outputs are additional fields in the NetCDF output files. NetCDF format is recommended for mesh outputs, rather than XMDF.

9.7.4 Points

Point output blocks are described in Section 5.18.4 and Section 6.11.4. These can be extended with inclusion of the water quality keywords as per the water quality manual Appendices above, or entirely new blocks can be created with only these quantities as needed. If depth averaging is applied then water column based output variables (such as water quality concentrations) are computed accordingly.

Outputs are additional columns to the output csv file. Column headers are an underscore separated concatenation of each point name and output variable name followed by the units of the reported numbers in square brackets.

9.7.5 Profiles

Profile outputs are configured in the same manner as points. The only exception is use of Output == Profile, and the absence of depth averaging options.

9.7.6 Polyline

Polyline (also referred to as flux) output blocks are described in Section 5.18.5 and Section 7.13.6. These automatically include reporting of fluxes of all simulated quantities and do not require specification of constituent keywords. Outputs are additional columns to the output csv file, with the units:

  • For water quality constituents simulated in mg/m\(^3\) (i.e. \(\mu\)g/L): kg/s
  • For water quality constituents simulated in g/m\(^3\) (i.e. mg/L): tonnes/s
  • For water quality constituents simulated in 10\(^4\)CFU/m\(^3\) (i.e. CFU/100mL): Tera CFU/s (i.e. multiply the output by 10\(^{12}\) to get CFU)

The number of new columns is the product of the number of polylines specified in the GIS polyline layer and the number of constituents simulated. Column headers are an underscore separated concatenation of each polyline name, constituent name and _FLUX_ (e.g. Bridge_WQ_DISS_OXYGEN_MG_L_FLUX) followed by the units of the reported numbers in square brackets (e.g. [tonnes/s]).

9.7.7 Structure

The structure output type (also referred to as structflux output) is described in Section 5.18.6 and Section 7.13.7. These automatically include reporting of fluxes of all simulated quantities through structures and do not require specification of constituent keywords. Outputs are additional columns to the output csv file, with the following units:

  • For water quality constituents simulated in mg/m\(^3\) (i.e. \(\mu\)g/L): kg/s
  • For water quality constituents simulated in g/m\(^3\) (i.e. mg/L): tonnes/s
  • For water quality constituents simulated in 10\(^4\)CFU/m\(^3\) (i.e. CFU/100mL): Tera CFU/s (i.e. multiply the output by 10\(^{12}\) to get CFU)

The number of new columns is the product of the number of structures specified in the GIS polyline layer and the number of constituents simulated. Column headers are an underscore separated concatenation of each structure number, constituent name and _FLUX_ (e.g. STRUCTURE_1_WQ_FRP_MG_L_FLUX) followed by the units of the reported numbers in square brackets (e.g. [tonnes/s]). The structure number is determined by the order that the structure block appears in the .fvc file.

9.7.7.1 Bubble Plumes

If bubble plume diffusers are simulated then an additional suite of columns are automatically included in the structure output. These describe the flux of each sediment fraction entrained by each bubble plume structure, with the following units:

  • For water quality constituents simulated in g/m\(^3\) (i.e. mg/L): tonnes/s
  • For water quality constituents simulated in mg/m\(^3\) (i.e. \(\mu\)g/L): kg/s
  • For water quality constituents simulated in 10\(^4\)CFU/m\(^3\) (i.e. CFU/100mL): Tera CFU/s (i.e. multiply the output by 10\(^{12}\) to get CFU)

The number of new columns is the product of the number of bubble plume structures specified and the number of constituents simulated. Column headers are an underscore separated concatenation of each structure number, _BUBBLER_ENTRAINED_, constituent name and _FLUX_ (e.g. STRUCTURE_1_BUBBLER_ENTRAINED_WQ_SILICATE_MG_L_FLUX) followed by the units of the reported numbers in square brackets (e.g. [tonnes/s]). The structure number is determined by the order that each bubble plume structure block appears in the .fvc file. For example, if a bubble plume structure is declared after a weir structure, it will be designated as structure two.

9.7.8 Mass Balance

Mass balance output is described in Section 7.13.8. Additional output files are generated for water quality mass which track mass fluxes into and out of the model domain, including inflows and boundary exchanges, for all constituents except pathogens. FC boundaries are not included in mass balance calculations. For each simulated quantity, a dedicated CSV file is written containing time series of accumulated fluxes, mass flux estimates for each relevant process, percentage error diagnostics and turnover times. Each file is named <run_name>_MASSBALANCE_<wq_var_name>.csv. The headers of these files are presented in Section B.11.1.4.

There is no need to specify map output parameters for mass balance output. All relevant outputs are automatically generated.

9.7.9 Mass

Mass output tracks the mass of all sediment fractions in the model, with the following units:

  • For water quality constituents simulated in mg/m\(^3\) (i.e. \(\mu\)g/L): kg
  • For water quality constituents simulated in g/m\(^3\) (i.e. mg/L): tonnes
  • For water quality constituents simulated in 10\(^4\)CFU/m\(^3\) (i.e. CFU/100mL): Tera CFU/s (i.e. multiply the output by 10\(^{12}\) to get CFU)

This output is a subset of the mass balance output and may be used if only total mass diagnostic output is required. There is no need to specify output parameters for mass output.

Outputs are additional columns to the output csv file. Column headers are an underscore separated concatenation of each water quality variable name and ‘_MASS’, followed by the units of the reported numbers in square brackets.

9.7.10 Restart File

Restart files were described in Section 5.18.10 and Section 7.13.10. When water quality simulation is activated, these files also store fields for each water quality constituent.

8  Model Construction: ST Simulation Class
10  Model Construction: PT Simulation Class