- 03 Aug 2022
- 2 Minutes to read
- Print
Adjusting advanced parameters to improve model stability
- Updated on 03 Aug 2022
- 2 Minutes to read
- Print
The minimum settings required to define a valid 1D model simulation are run type (e.g. steady, unsteady, etc.), time settings (e.g. start/end times, timestep and save interval for unsteady runs) and associated files (minimum requirement is a 1D network, .dat file). However, the 1D simulation window consists of multiple tabs, each containing a variety of optional settings. These can be for specialist requirements or to provide more advanced options for improving model stability and accuracy. This section will highlight some of the most commonly applied advanced parameters for improving a 1D model performance; explaining how each parameter is used within the 1D solver and providing guidance on how to adjust it to improve your model. Currently, this section contains information regarding the parameter alpha – future updates will include the addition of other advanced parameters.
Alpha (default = 0.7)
Alpha is an under-relaxation parameter. It determines the weighting of the result towards the previous iteration, therefore increasing its value towards 1 will improve mass conservation. A value of exactly 1 indicates no relaxation (i.e. the ideal value), but the default value in the 1D solver is 0.7. Thus, the default setting is inherently mass non-conservative for a dynamic model. The allowable range for the alpha parameter is 0.5 to 1.
The following summarises how alpha is applied within the 1D solver:
Solution is calculated - call it X1
Solution is then adjusted - call it Y1 = alpha.X1 + (1-alpha).Y0
[where Yi-1 is the adjusted solution at the previous iteration - in this case Y0 is that at the previous timestep (there is no iteration 0)]
Iteration 2Solution is calculated: X2
Solution is then adjusted: Y2=alpha.X2 + (1-alpha).Y1
If minitr=2 and the solution is converged, then Y2 is the final output, else, the solver will proceed through further iterations until convergence is attained (subject to minitr) or maxitr is reached.
The final output, therefore, can be considered as Yn, after n iterations.
The reason for alpha (not defaulting to 1) is to smooth the solution between iterations to prevent sudden jumps and potential instabilities.
The downside is you've discarded a proportion of the "exact" results (inasmuch as the numerical solution is exact) to achieve this. A proportion of the final result will be from the previous timestep, and may also be from a non-converged iteration (unless alpha=1), hence there may be some mass balance violations. Hence, if your model can "get away" with alpha set to 1, then this is the ideal option. Alternatively, if model stability dictates using a value of alpha <1, then the recommended option is to increase the minimum number of iterations per timestep setting (minitr) to dilute this effect.
The interactive effect of alpha and minitr is highlighted in the following example:
If minitr=2 and alpha=0.7, then your result comprises:
70% of iteration 2
21% of iteration 1 (=30% of the previous iteration, which contained 70% of iteration 1 "exact" solution)
9% of the previous timestep [=(1-alpha)^minitr in general]
In summary, an option to improve an unstable model is to reduce alpha, but do so with caution, i.e. check this change doesn’t increase mass balance errors significantly. In practice, the effect on mass balance is usually greater with 1D networks containing reservoir units. This is due to the way in which the reservoir unit works (effectively a simple mass balance) as opposed to it being used for storage (e.g. modelling as rivers use the dynamic equations of motion).
Related topics
More about 1D River Diagnostics