 13 Jan 2023
 4 Minutes to read

Print

DarkLight
1D Simulations  Advanced Parameters Tab
 Updated on 13 Jan 2023
 4 Minutes to read

Print

DarkLight
The Advanced Parameters tab consists of further parameters that apply to 1D simulations.Note that the values of htol , qtol , theta and alpha may also be specified in the data file. Any such values set within the data file will override the defaults in the 1D simuation window, although any values altered within the latter will take precedence.
The parameters, meanings and their default values are as follows. Depending on the run type selected, different parameters will be enabled or disabled.
Parameter  Description  Default 
dflood  Height (m) of vertical walls added to the highest point on each river cross section to allow for flooding  3 
htol  Stage tolerance value (combination of absolute and relative)  0.01 
qtol  Flow tolerance value (combination of absolute and relative)  0.01 
minitr  Minimum number of iterations performed at each timestep  3* 
maxitr  Maximum number of iterations performed at each timestep. May be increased to enhance likelihood of convergence. If increased, a prime number is recommended to trap cyclic nonconvergent behaviour  11** 
theta  Preissmann box weighting factor. A value of 1.0 gives a fully implicit numerical scheme. Allowed range 0.51.0  0.7 
alpha  Underrelaxation parameter. Determines the weighting of the result towards the previous iteration. A value of 1 indicates no relaxation  0.7 
sconmx  Maximum allowable piezometric head above soffit level for symmetric conduits (metres)  100 
dltmax  Maximum transition gradient (∂Q/∂h) for lateral spills  1 
dilmax  Maximum transition gradient (∂Q/∂h) for inline spills  1000 
swop  "Small number" that determines when to apply the "special case" equations for spill units  0.001 
weight  Underrelaxation parameter applied locally to spills  0.1 
Spill threshold  Difference in water levels either side of a spill (m), within which zero flow is applied over the segment. Can be used to stabilise spill flow  10^{6} 
dfloodb  Height (m) of vertical walls added to the highest point on each bridge cross section to allow for flooding  10 
pcmxvd  Percentage of total crosssection height at which dummy points are inserted to interpolate crosssection properties. May be relaxed to 10, for instance, to aid convergence at low depths  2 
nsbint  If the solution converges within an average of avitr iterations over nsbint successive timesteps during an Adaptive Timestepping simulation, then a doubling of the timestep is attempted  1 
avitr  Average iterations, see above  3.5* 
pswide  Width (m) of triangular Preissmann slot (if Option chosen)  0.1 
psdeep  Depth (m) of triangular Preissmann slot (if Option chosen)  1 
Orifice linearisation head  Value entered here (in m) can help prevent oscillations at low head differences in orifice units  0 
*minitr had a default value of 2 prior to v4.4, at which point this default was increased to 3. As a knockon effect, the default value of avitr was also increased from 3 to 3.5.
**maxitr had a default value of 6 prior to v4.0.
The below highlights 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.
Alpha (default = 0.7)
Alpha is an underrelaxation 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 nonconservative 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:
Iteration 1
Solution is calculated  call it X1
Solution is then adjusted  call it Y1 = alpha.X1 + (1alpha).Y0
[where Yi1 is the adjusted solution at the previous iteration  in this case Y0 is that at the previous timestep (there is no iteration 0)]
Iteration 2
Solution is calculated: X2
Solution is then adjusted: Y2=alpha.X2 + (1alpha).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 nonconverged 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 [=(1alpha)^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).