skip to main content
Water Quality : Reach Water Quality : User Methods : Water Quality Routing
Water Quality Routing
On the reach, the appropriate water quality slots are added when a method is selected in the Water Quality Routing category. In this category, there are methods that are dependent on the selected constituents, solution approach, and routing method. They are used to represent how the constituents are routed through the reach.
Note:  For Discretized Salt and Propagate TDG, the method will be automatically selected based on these factors. For other approaches, you must select the method.
Each method describes when it is available and the slots that are instantiated. The slots are described above.
When the reach is an element of an Agg Reach, the aggregate controls the method selection on the elements and the element category is not shown (it is invisible). For Well Mixed Salt, the reaches can either model None or Mass Balance Salinity. For Discretized Salt, the reaches can either model None or Salinity. See the following topics for details:
• None
• Salinity
* None
This is the default, no-action method for this category. It is available for any set of constituents, solution approach and routing methods. No slots are instantiated by this method.
* Time Lag; Temperature
This method is available for Discretized Temperature and the reach is configured to use Time Lag routing.
Slots Specific to This Method
• Lag Time
• Specific Heat
Method Details  
This method calls the utility method solveTimeLagTemp.
* Time Lag Salt
This method is available for Discretized Salt and the reach is configured to use Time Lag routing.
Slots Specific to This Method
• Inflow Salt
• Lag Time
Method Details  
This method calls the utility method solveTimeLagOutSalt.
Note:  In the associated flow routing method Time Lag Routing, you can select methods to specify/compute Local Inflow and Gain Loss. Neither of these are allowed in the WQ methods and will give an error if selected or specified. You will need to add another (no routing) reach to model these parameters.
* Time Lag; Salt and Temperature
This method is available for Discretized Temp and Salt and the reach is configured to use Time Lag routing.
Slots Specific to This Method
Method Details  
This method calls the following utility methods:
* Time Lag; Temperature and DO
This method is available for Discretized Temp and DO and the reach is configured to use Time Lag routing.
Slots Specific to This Method
Method Details  
This method calls the following utility methods:
* Time Lag; Salt, Temperature and Dissolved Oxygen
This method is available for Discretized Temp Salt and Dissolved Oxygen and the reach is configured to use Time Lag routing.
Slots Specific to This Method
Method Details  
This method calls the following utility methods:
* Variable Time Lag Salt
This method is available for Discretized Salt and the reach is configured to use Variable Time Lag routing.
Slots Specific to This Method
• Inflow Salt
• Variable Lag Time
Method Details  
This method calls the utility method solveVarTimeLagOutSalt.
Note:  In the associated flow routing method Variable Time Lag, you can select methods to specify/compute Evaporation and Precipitation, Local Inflow, Return Flow, and Gain Loss. None of these are allowed in the WQ methods and will give an error if selected or specified. You will need to add another (no routing) reach to model these parameters.
* No Routing; Temperature
This method is available for Discretized Temp and the reach is configured to use No Routing.
Slots Specific to This Method
Method Details  
This method calls the following utility methods:
* Salinity
This method is available for Discretized Salt and the reach is configured to use No Routing.
Slots Specific to This Method
Method Details  
This method calls the following utility methods:
* No Routing; Salt and Temperature
This method is available for Discretized Temp and Salt and the reach is configured to use No Routing.
Slots Specific to This Method
Method Details  
This method calls the following utility methods:
* No Routing; Temperature and DO
This method is available for Discretized Temp and DO and the reach is configured to use No Routing.
Slots Specific to This Method
Method Details  
This method calls the following utility methods:
* No Routing; Salt, Temperature and DO
This method is available for Discretized Temp Salt and DO and the reach is configured to use No Routing.
Slots Specific to This Method
Method Details  
This method calls the following utility methods:
* Control Volume Explicit; Temperature
This method is available for Discretized Temperature and the reach is configured to use MacCormack, Kinematic, Kinematic Improved, Muskingum Cunge or Muskingum Cunge Improved routing.
Slots Specific to This Method
Method Details  
This method calls the following utility methods:
This method solves for water temperature based on control volume mass balances. The numerical solution to the convection-diffusion equation is an explicit backward difference. To prevent instabilities, a user input maximum flow rate is required so that the water quality algorithm will maintain stability regardless of the simulation time step. This is accomplished by calculating the time step required for numerical stability based on a conservative substance. Although the mass balance for water temperature includes transformation it is assumed negligible for the stability of the solution. If the required time step for stability is less than the simulation time step, the algorithm is executed multiple times at a time step less than or equal to the required time step. The total time of these steps will cumulatively equal the simulation time step. If the user defined maximum flow is not exceeded in the simulation, the solution will remain stable.
* Control Volume Implicit; Temperature
This method is available for Discretized Temperature and the reach is configured to use MacCormack, Kinematic, Kinematic Improved, Muskingum Cunge, or Muskingum Cunge Improved routing.
Slots Specific to This Method
Method Details  
This method calls the following utility methods:
The basic methodology of the controlVolumeImplicit method is no different than the controlVolumeExplicit method, with the exception of the solution technique being an implicit backward difference approximation to the convection equation. Longitudinal dispersion is not included in this method to decrease to computational effort in obtaining a solution. This numerical solution is unconditionally stable and does not require that a maximum flow rate be input by the user.
* Control Volume Explicit; Salt
This method is available for Discretized Salt, and the reach is configured to use MacCormack, Kinematic, Kinematic Improved, Muskingum Cunge, or Muskingum Cunge Improved routing.
Slots Specific to This Method
Method Details  
This method calls the following utility methods:
This method solves for salt concentration based on control volume mass balances.
* Control Volume Implicit; Salt
This method is available for Discretized Salt, and the reach is configured to use MacCormack, Kinematic, Kinematic Improved, Muskingum Cunge, or Muskingum Cunge Improved routing.
Slots Specific to This Method
Method Details  
This method calls the following utility methods:
The basic methodology of the controlVolumeImplicit method is no different than the controlVolumeExplicit method, with the exception of the solution technique being an implicit backward difference approximation to the convection equation.
* Control Volume Explicit; Salt and Temp
This method is available for Discretized Temp and Salt and the reach is configured to use MacCormack, Kinematic, Kinematic Improved, Muskingum Cunge, or Muskingum Cunge Improved routing.
Slots Specific to This Method
Method Details  
This method calls the following utility methods:
This method solves for salt concentration and water temperature based on control volume mass balances. The numerical solution to the convection-diffusion equation is an explicit backward difference. To prevent instabilities, a user input maximum flow rate is required so that the water quality algorithm will maintain stability regardless of the simulation time step. This is accomplished by calculating the time step required for numerical stability based on a conservative substance. Although the mass balance for water temperature includes transformation it is assumed negligible for the stability of the solution. If the required time step for stability is less than the simulation time step, the algorithm is executed multiple times at a time step less than or equal to the required time step. The total time of these steps will cumulatively equal the simulation time step. If the user defined maximum flow is not exceeded in the simulation, the solution will remain stable.
* Control Volume Implicit; Salt and Temp
This method is available for Discretized Temp and Salt and the reach is configured to use MacCormack, Kinematic, Kinematic Improved, Muskingum Cunge, or Muskingum Cunge Improved routing.
Slots Specific to This Method
Method Details  
This method calls the following utility methods:
The basic methodology of the controlVolumeImplicit method is no different than the controlVolumeExplicit method, with the exception of the solution technique being an implicit backward difference approximation to the convection equation. Longitudinal dispersion is not included in this method to decrease the computational effort in obtaining a solution. This numerical solution is unconditionally stable and does not require that a maximum flow rate be input by the user.
* Mass Balance Salinity
This method is available for Well Mixed Salt and the reach is configured to use No Routing.
Slots Specific to This Method
Method Details  
This method exists to instantiate the appropriate slots. All of the calculations are performed in the dispatch method. The following dispatch methods are available when Mass Balance Salinity is selected:
When the reach is an element of an Agg Reach, the aggregate controls the method selection on the elements. For Well Mixed Salt, the reaches can either model None or Mass Balance Salinity. When Mass Balance Salinity is selected on the aggregate, then this method is selected on the reach but is invisible. The routing method must be No Routing or an error will be issued. See None and Mass Balance Salinity for details.
* No Routing; TDG
This method is available when the Propagate TDG method is selected and the reach is configured to use No Routing.
Slots Specific to This Method
• Inflow TDG Concentration
• Outflow TDG Concentration
Method Details  
The reach routes the TDG concentration:
(13.4)    
TDGO = Outflow TDG Concentration
TDGI = Inflow TDG Concentration
* Time Lag; TDG
This method is available when the Propagate TDG method is selected and the reach is configured to use Time Lag Routing.
Slots Specific to This Method
Method Details  
The reach routes the TDG concentration using a simple lag:
(13.5)    
TDGO = Outflow TDG Concentration
TDGI = Inflow TDG Concentration
TDGlag = TDG Lag Time
* Time Lag TDG with Dispersion and Dissipation
This method is available when the Propagate TDG method is selected.
Slots Specific to This Method
Method Details  
The reach routes TDG with three components: Lag Time, Dispersion and Dissipation. First the TDG Lag Time and Dispersion are applied together. The Dispersion Coefficients are applied on the lagged TDG concentration.
    
The Offset and Coeff come from the first and second columns respectively of the TDG Dispersion Coefficients table slot.
Next the TDG Dissipation is calculated if it is not specified (input or rules). If TDG Dissipation is specified, this step will be skipped.
    
If TDG Dissipation Adjustment is not specified, it will default to zero. The TDG Dissipation Coefficient is applied to the TDG concentration above 100 % saturation.
Finally, the Outflow TDG Concentration is calculated as
    
Revised: 07/09/2023