In GeoHECRAS, the 2D Flow Options panel of the Unsteady Flow Computational Options dialog box contains several computational options and tolerances that can be set for the 2D module and options for controlling iterations between 1D and 2D hydraulic connections.
The following sections describe how to interact with the 2D Flow Options panel of the Unsteady Flow Computational Options dialog box.
1D/2D Interface Computational Options
This section provides various options for controlling 1D/2D iterations, which can be used to improve the computations of flow passing from a 1D element (reach or storage area) to a 2D flow area. Most 1D to 2D connections will not need iterations. However, under specific circumstances such as when the1D/2D hydraulic conditions become highly submerged or there are flow reversals or tidally influenced stages or flows, then iterating between the 1D solution and the 2D solution may be necessary to get an accurate and stable solution.
The options to set the maximum iterations between the 1D and 2D interfaces and tolerances for controlling the convergence criteria are described below:
- Maximum iterations between 1D/2D interface: Checking this checkbox allows the user to set the maximum iteration between 1D and 2D interface. The maximum iterations can be set from 1 to 20. By default, this checkbox is left unchecked. The user can select this checkbox when there is a stability problem at a 1D/2D hydraulic connection. It is recommended to set the number of 1D/2D iterations as low as possible to get a stable answer between a 1D and 2D connection that is having stability problems. By default, the software uses a value of 10. The number of 1D/2D iterations will cause the entire solution to be calculated multiple times for each time step to get the desired convergence. Note that increasing the maximum number of iterations could dramatically lengthen run time. It is suggested to start with a low value, such as 3 or 4. If the stability problem still exists with that number of iterations, increase the value until a stable solution is achieved.
- Water surface calculation tolerance: This entry field allows the user to define the water surface tolerance. The water surface tolerance is used when an upstream 1D reach is connected to a downstream 2D flow area. In this situation, the 1D region is computed, then the 2D region. The assumed water surface elevation at the boundary is re-evaluated. The solution will iterate if the water surface has changed more than the water surface tolerance. When the water surface elevation at the boundary has changed less than the tolerance, the solution stops iterating and moves on to the next time step. By default, the software uses a value of 0.01.
- Flow calculation tolerance: This entry field allows the user to define the flow tolerance percent. The flow tolerance percent is utilized for the following 1D/2D connections:
- Lateral structures
- SA/2D hydraulic connection (SA to 2D, or 2D to 2D)
- 2D flow area to 1D reach connection
The default value for the flow tolerance percent is 0.1. If the Maximum iterations between 1D/2D interface checkbox was checked, then the flow between 1D/2D connections gets recomputed after each trial. Recomputation helps in checking if the flow has changed more than the user-defined flow tolerance percent. The solution iterates if the flow has changed more than the flow tolerance specified.
- Minimum flow tolerance: This entry field allows the user to define the minimum flow tolerance. It is a companion tolerance to the flow calculation tolerance. This tolerance aims to prevent the software from iterating when the flow passed between a 1D and 2D element is very small and not significant to the solution. For example, there may be a connection from a 1D reach to a 2D flow area via a lateral structure in which the flow under certain conditions is very low. Hence, the actual change in the flow from one iteration to the next could be very small (but the percent error is very high). Such a small flow may not add significance to the solution, so iterating the entire solution to improve this small flow between the 1D and 2D elements is not recommended and may unnecessarily increase the computational time. It is recommended to set a minimum flow tolerance when turning on 1D/2D iterations. By default, the software uses a value of 1 cfs.
2D Flow Computational Options
This section allows the user to include the Coriolis effect with the momentum equation and use the VRT refinement grid for 2D model elements.
The following options are provided in this section:
- Include Coriolis effects with Momentum Equation: Checking this checkbox causes the software to turn on the effects of the Earth’s rotation on the solution (Coriolis Effect). When this checkbox is checked, the user is required to enter the latitude of the center of the 2D flow area in degrees in the Coriolis Effect Latitude (-90 to 90) field provided in the 2D Flow Area Computational Parameters section. A latitude with a value greater than zero is considered in the northern hemisphere, and a value less than zero is considered in the southern hemisphere.
- Use VRT refinement grid for 2D model elements (i.e., bridge piers, conveyance obstructions, etc.): When dealing with larger 2D model areas whereby the use of a high-resolution elevation terrain surface is too large and will utilize too much memory, a multi-resolution elevation raster allows the selective application of additional detail where required. For example, when defining a building footprint or bridge support piers, the original elevation raster that the software uses in its 2D flow computations may be too coarse. This may cause the flow around the structure to appear jagged and not truly representative of actual conditions. Checking this checkbox directs the software to automatically create a higher resolution elevation raster in those areas of the 2D flow area model domain where necessary. The software will automatically recognize bridge piers, conveyance obstructions, flow training structures, and more and generate a VRT (Variable Resolution Terrain) elevation raster in those areas of interest.
2D Flow Area Computational Parameters
This section allows the user to set computational options and tolerances for the 2D computational module.
The following options are provided in this section:
- Theta Implicit Weighting Factor (0.6 to 1): This entry field allows the user to define the implicit weighting factor used to weight spatial derivatives between the current solution timeline and the previously solved solution timeline. Theta of 1.0 (Default) uses only the currently solved timeline for the spatial derivatives. This provides for the most stable solution but possibly at the loss of some accuracy. Theta of 0.6 provides the most accurate solution of the equations but tends to be less stable. In general, it has been found that in the application of most real-world flood runoff types of events, Theta of 1.0 will give about the same answers as Theta of 0.6. However, this should be tested for each model due to site-specific geometry and flood propagation.
- Warm Up Theta (0.6 to 1): This entry field allows the user to define the value of Theta that is used during the model warmup and ramp-up periods. By default, the software uses a value of 1.
- Water Surface Calculation Tolerance (ft): This entry field allows the user to define the 2D water surface solution tolerance for the iteration scheme. If the solution of the equations gives a numerical answer with less numerical error than the set tolerance, then the solver is done with that time step. If the error is greater than the set tolerance, the solver will iterate to get a better answer. The solver will only iterate up to the maximum number of iterations set by the user. The default value is set to 0.01 ft.
- Volume Tolerance (ft): This entry field allows the user to define the 2D water volume solution tolerance for the iteration scheme. The volume error is converted to feet (ft) by taking the currently solved water surface elevation into the elevation-volume curve for the cell, then calculating the change in water surface elevation based on the current volume error at that point on the curve. If the solution of the equations gives a numerical answer with less volume error than the set tolerance (in terms of ft), then the solver is done with that time step. If the maximum error is greater than the set tolerance, the software will iterate to get a better answer. The software will only iterate up to the maximum number of iterations set by the user. The default value is set to 0.01 ft.
- Maximum Iterations: This field allows the user to set the maximum number of iterations that the solver will use while attempting to solve the equations (to get an answer with a numerical error less than the user-specified tolerance at all locations in the 2D computational mesh domain). The default value is set to 20. However, the user can provide any value between 0 and 40. It is not recommended to change the default value unless you are sure that changing the value will either improve the chances that the model will converge (i.e., increase the value) or speed up the computations without causing any significant errors.
- Computational Equation: This dropdown combo box allows the user to select one of the four available 2D computational methods for computing the flow field in a 2D mesh: Diffusion Wave, SWE-Eulerian-Lagrangian Method, SWE-Eulerian Method, and SWE-Local Inertia Method. To learn more about these methods, refer to this article in our knowledge base.
- Initial Conditions Time (hrs): This entry field allows the user to ramp up the water surface from a dry condition to a wet condition within a 2D area (or from a flat water surface if an initial water surface elevation was entered). When external boundary conditions such as flow and stage hydrographs (or 1D reaches) are connected to a 2D area, the first value of the connected flow or stage may be too high. If the model were to start this way, such a high discontinuity could cause model instability. The user can specify a time (in hours) to run the computations for the 2D flow area while slowly transitioning the flow boundaries from zero to their initial value and the stage boundaries from a dry elevation up to their initial wet elevation. By default, the software uses a value of 1 hr. After defining the value for this entry field, the user must also specify a fraction of this time to ramp up the boundary conditions in the Initial Conditions Ramp-up Fraction (0 to 1)
- Initial Condition Ramp-up Fraction (0 to 1): This entry field allows the user to enter the fraction of the initial conditions ramp up time used to ramp up the 2D flow area boundary conditions from zero or dry to their initial flow or stage. The user can enter a value between 0.0 and 1.0, representing the decimal fraction of the initial conditions ramp up time. By default, the software uses a value of 0.1. A value of 0.5 means that 50% of the initial conditions time will be used to ramp up the boundary conditions to their initial values. The remaining time will be used to hold the boundary conditions constant but allow the flow to propagate through the 2D flow area. Thus, it gives enough time to stabilize to a good initial condition throughout the 2D flow area.
- Maximum Time Slices: This field allows the user to set a computational time step for a 2D area that is a fraction of the overall unsteady flow computation interval. For example, suppose the user has set the unsteady flow overall computation interval to 10 minutes. In that case, setting a value of 5 in this field (for a specific 2D area) means that the computation interval for that 2D area will be 1/5 of the overall computation interval, which for this example would be 2 minutes (10/5 = 2). Different values can be set for each 2D flow area. By default, the software uses a value of 1, which means that the 2D flow area is using the same computational time step as the overall unsteady flow solution.
- Turbulence Model: This dropdown combo box allows the user to select from three available options to perform turbulence modeling. The following options are provided:
- None (default) – When this option is selected, no turbulence modeling will be performed.
- Conservative – When this option is selected, the software uses a conservative formulation that ensures little to no momentum loss when turbulence is turned on.
- Non-Conservative (original) – When this option is selected, the software uses a non-conservative formulation that has some numerical diffusion. However, it is very small when the cell size is small, and the time step is small.
Note that certain options of this section get enabled or disabled based on the Computational Equation and the Turbulence Model selected by the user, as shown below.
Computational Equation Turbulence Model Parameters Longitudinal Mixing Coefficient Transverse Mixing Coefficient Smagorinsky Coefficient Boundary Condition Volume Check Latitude for Coriolis Diffusion Wave Disabled Disabled SWE-ELM or SWE-EM None Disabled Enabled Conservative Enabled Disabled Enabled Non Conservative Enabled Disabled Enabled
- Longitudinal Mixing Coefficient: This entry field allows the user to provide a value for the longitudinal mixing coefficient. This coefficient is utilized to compute the contribution of the eddy viscosity from the turbulence and dispersion in the longitudinal direction (i.e., the direction of flow). In practice, this coefficient can differ by several orders of magnitude, depending on the flow. By default, this entry is left blank (i.e., the coefficient value will not be used).
- Transverse Mixing Coefficient: This entry field allows the user to provide a value for the traverse mixing coefficient. This coefficient is utilized to compute the contribution of the eddy viscosity from the turbulence and dispersion in the transverse direction (i.e., perpendicular to the flow direction). In practice, this coefficient can differ by several orders of magnitude, depending on the flow.
- Smagorinsky Coefficient: This entry field allows the user to provide a value for Smagorinsky mixing coefficient. This coefficient component of the eddy viscosity represents the turbulence intensity produced by flow shear and assumes that the energy production and dissipation are equal at subgrid scales. The Smagorinsky Coefficient value is typically in the range of 0.05 to 0.2. However, it is best to calibrate this and other mixing parameters using spatially distributed current velocity measurements. By default, this entry is left blank (i.e., the coefficient value will not be used).
- Boundary Condition Volume Check: Checking this checkbox causes the software to check 2D to 1D boundary connections to ensure there is enough water in a 2D cell over the time step to satisfy the computed flow exchange. If this checkbox is left unchecked, the computed flow exchange will be reduced for the first guess of the flow rate for that time step.
- Coriolis Effect Latitude (–90 to 90): This entry field allows the user to enter the latitude of the center of the 2D flow area in degrees.
- Solver Cores: This dropdown combo box allows the user to select the number of CPU cores to use to solve the 2D flow area computations. By default, the software selects the All Available
- Matrix Solver: This dropdown combo box allows the user to select one of the following sparse matrix solvers:
- Pardiso (Direct) (default)
- SOR (Iterative)
- FGMRES-SOR (Iterative)
Note that based on the type of Matrix Solver selected by the user, the following options will be enabled or disabled.
Parameter Matrix Solver PARDISO SOR (Iterative) FGMRES-SOR (Iterative) Convergence Tolerance Disabled Enabled Enabled Minimum Iterations Disabled Enabled Enabled Maximum Iterations Disabled Enabled Enabled Restart Iteration Disabled Disabled Enabled Relaxation Factor Disabled Enabled Enabled SOR Preconditioner Iterations Disabled Disabled Enabled
- Convergence Tolerance
This is an optional field. This entry field allows the user to specify the convergence tolerance for the iterative solver. The tolerance is compared to the root-mean-squared of the normalized residuals. If the value is left blank, the tolerance is set to 10 times the water surface tolerance. Decreasing the tolerance will increase the number of solver iterations and decrease the simulation speed and vice-versa. If the tolerance is too small, the iterative solver may take many iterations to reach the tolerance or never reach it at all. Conversely, the solution will have water volume errors if the tolerance is set too large. Therefore, the user must be careful when setting this parameter.
- Minimum Iterations
This is an optional field. The default value is None. This entry field allows the user to specify the minimum number of iterations. The iterative solver will continue to iterate even if the convergence criterion is satisfied until the minimum number of iterations. The minimum number of iterations avoids solution creep or divergence when the solution changes slowly or the convergence tolerance is set too high. The SOR solver generally requires fewer iterations than the FGMRES-SOR solver.
- Maximum Iterations
This is an optional field. The default value is None. This entry field allows the user to specify the maximum number of iterations. The maximum number of iterations keeps the iterative solver from iterating too many times past the point of diminishing returns. Generally, iterative solvers will reach a point at which the improvement in the solution for each iteration is relatively small, and the computational cost of each iteration does not outweigh the benefit of continuing to iterate. The SOR solver generally requires fewer iterations than the FGMRESSOR solver.
- Restart Iterations
This entry field allows the user to specify the restart iterations used in the FGMRES solver. The default value is 10. Because the amount of storage and computational work required by FGMRES increases with each iteration, the method is typically restarted. The group of iterations between successive restarts is referred to as a cycle. When a cycle has completed the results’, an approximate solution is used as an initial guess for a new cycle of iterations. Generally, the restart iterations are between 8 and 20.
- Relaxation Coefficient
This entry field allows the user to specify the relaxation coefficient for the SOR solver. The default value is 1.3. The optimal relaxation value of the relaxation coefficient is generally between 1.1 and 1.5. However, if the value is too large, the solver may diverge. Therefore, it is best to utilize a conservative value that will be relatively fast and not have divergence problems.
- SOR Preconditioner Iterations
The SOR method is used both as a solver and as a preconditioner for the FGMRES solver in HEC-RAS. When SOR is used as a preconditioner, the SOR method is applied for a fixed number of iterations, which is specified as the SOR Preconditioner Iterations. The default value is 10. This eliminates the need to specify separate convergence criteria for the auxiliary system of equations for which the SOR method is applied. It also eliminates the need to compute convergence parameters during the SOR iterations. The optimum number of iterations will be problem-specific. However, in general, more iterations will be necessary with a larger mesh.