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.