Model Non-Convergence and Stability – Flow Engine Runs
If you are experiencing difficulty in getting your model to run successfully, you may be running into issues with model stability (e.g. output heads or concentrations exceed an absolute value of 1E+30) and/or model convergence (e.g. the simulation exceeds the specified number of solver iterations). These issues can often be solved by examining your model and making a number of common adjustments to your model inputs and run settings. We recommend that you read through the following suggestions, and apply them to your model, where applicable and appropriate. Please remember that in many cases, a combination of changes to your model may be required to reach stability and convergence.
Model stability issues occur when the solution converges towards plus/minus infinity (or absolute values greater than the min/max number allowed by most engines is approximately 1038). This will typically be indicated during a run by a red “X” in the Engine Tab and either a red “no mass balance information” error (as shown below on the left) or a crashed engine (as shown below on the right) when one or more values in the model exceeds the maximum allowed value.
Model non-convergence occurs when the numerical solver does not find a solution to the specified level of precision of the closure/convergence criteria within the allotted number of solver iterations. This will typically be indicated during a run by warning sign in the Engine tab at the Run step and by an orange warning message in the console output (note, this will occur near the top of the console output):
Here are some things to check when your model run does not complete successfully:
Potential Issue #1: Solvers and Settings
The default solver settings for flow and transport models in Flex are typically sufficient for most simple models. However, more complex models may require some adjustments to the solver settings to reach convergence. If the model almost converges, (i.e. the output global mass balance error reported in the run console is relatively low), you can try increasing the number of inner/outer iterations to provide the numerical algorithms a little more “time” to reach convergence and/or adjust the convergence criteria (called HCLOSE and/or RCLOSE in most solvers). You may also try experimenting with different solvers and their more advanced settings.
Potential Issue #2: Initial Heads for Steady-State runs are not close enough to a stable solution
In theory, the specified initial heads for steady should have no impact on the resulting heads for a steady-state simulation; however, in practice, the values of the initial heads can affect how hard the numerical solver may have to work to reach a solution and even lead to non-convergence or stability issues, in some cases, particularly if the initial guess is too far from equilibrium. For steady state simulations, if possible, you should attempt to set initial heads relatively close to the expected steady state values. Luckily there are a few tools that help you with with this:
- You can try settings the Initial Heads to use ground surface elevation or use a previous MODFLOW run for the same model under different condition (if available).
- If you have multiple observed/expected heads (including from surface waters), you can interpolate these to create potentiometric surfaces for each aquifer in your model.
- You can use the Expression Builder to develop a surface that approximates the expected location of the water table (e.g. it occurs 2m below the ground surface or at elevations corresponding to 75% saturation of the upper-most model layer).
Potential Issue #3: Water Table Issues (Dry cells in your model domain and/or pumping wells that are running dry)
Most of the MODFLOW flow engines included with Visual MODFLOW Flex are designed to simulate saturated flow conditions only. If you have large areas of your model that are above the water table, or areas where the water table is dropping below or straddling model layers, the resulting dry cells can result in convergence problems.
Additionally, if areas are cycling between saturated and unsaturated (wet and dry) conditions due to water table fluctuation, Recharge settings, or Rewetting settings, this can also cause convergence problems due to oscillation.
- Check to see that you have entered an appropriate Recharge value for your model, and that it is assigned to the “highest active layer” (at the Translation step, select the Recharge and EVT settings node, under the MODFLOW-flow engine branch and try adjusting the settings for the NRCHOP and NEVTOP options.
- If you think that Rewetting is causing oscillation in your model, try reducing the Wetting interval to every 3-5 iterations, or switch to MODFLOW-NWT, which has a more robust formulation (.UPW) and solver (.NWT) approach that avoid WET/DRY cells.
- Consider re-assigning layer elevations, or combining the top layers in your model, to increasing the layer thickness, and reduce the probability of dry cells. Visual MODFLOW is largely a saturated flow-modeling program. If you have layers above your water table, they will become Dry during the model run, which can cause non-convergence. You may receive an error message referring you to the .LST file.
- If drawdown around pumping wells is causing wells to run dry, convergence problems can surface. You may need to revise your model inputs (e.g. conductivity values, layer thickness(es), pumping rates/screen elevations, grid discretization, etc.) to keep the cell(s) in which the well is assigned from going dry.
If you are not able to resolve dry cell issues in your model, you may want to consider using the MODFLOW-NWT Flow Engine. This engine is a special version of MODFLOW-2005 and was specifically developed by the USGS to improve solver performance for problems involving drying and rewetting nonlinearities of the unconfined groundwater-flow equation.
Another option to consider, particularly if you need improved evaluations of the location of the water table and/or unsaturated flow, is MODFLOW-SURFACT. This add-on package for Visual MODFLOW Flex is designed to simulate Unsaturated and Saturated conditions without difficulty, and is also capable of handling wells screened over multiple layers where one or more layers are being pumped dry, perched water tables, steep water table gradients, and other complex project scenarios. You can contact the Waterloo Hydrogeologic Sales department at firstname.lastname@example.org or +1 519-746-1798, for more information on the MODFLOW-SURFACT Flow Engine.
If you have checked the previous common problems, and implemented the solutions, yet your model will still not converge, you may want to consider adjusting the parameters of your solver, or trying a different solver (see Potential Issue #1 above).
Potential Issue #4: Imbalanced Boundary Conditions
Check the mass balance in the MODFLOW listing file to see if boundary conditions are unbalanced. A common source of convergence issues, particularly in steady-state models, is that source boundary conditions are out of balance with sink boundary conditions, and/or the conductance of the model. That is the model may be adding more water than can move through the model or can be removed by the specified sinks OR the model may be removing more water than can move through the model or than is being added by the specified sources.
- Check the run console (or the contents of the model .LST file) for the volumetric budget for the entire model and verify whether there are any boundary conditions with unexpectedly high/low values and adjust model inputs as necessary. If the model is steady state is not stable so that no results are produced; you may try to set the model to run as transient for a very short duration to force an output mass balance to see which boundary conditions are adding/removing unexpected amounts of water to the model particularly relative to other boundary conditions.
- Similarly, boundary conditions may be out of balance with nearby inter-cell conductances, which are composed of hydraulic conductivity, and cell dimensions (please refer to the documentation/development of the specific groundwater flow package (e.g. BCF, LPF, UPW, etc.) in the original user manual for the applicable engine for how conductances are calculated) . Certain boundary conditions, particularly Type-2 boundary conditions which have a specified flux (e.g. recharge (RCH), well (WEL), and specified flux (FHB)) may add or remove more water than the inter-cell conductances of nearby cells can accommodate with a stable numerical solution. Check the input values of these types of boundary conditions relative to nearby conductances. In particular, check recharge rate values, noting that recharge is applied at a constant rate, regardless of the receiving conductivity. Stability/convergence issues may occur when the specified recharge rate exceeds the vertical hydraulic conductivity in the cell(s) where it is applied. It may be useful to start with little to no recharge at first and increase the rate(s) incrementally.
- Similarly if heads around certain boundary conditions are excessively high/low, this may be caused by inappropriate values/assignment locations. You may need to revise your model inputs. Note that, most boundary conditions (including drains (DRN), rivers (RIV), wells (WEL), general heads (GHB), etc.) will be deactivated by MODFLOW in cells that run dry. This can cause oscillatory behavior (i.e. repetitive decline and recovery of the water table across model layers), particularly when cell rewetting is active (see potential issue #3 above).
Potential Issue #5: Sharp gradients in the grid
Stability and non-convergence issues may occur in models with abrupt changes in the grid properties leading to sharp gradients in inter-cell conductance, which can be problematic for the numerical solution methods incorporated in the MODFLOW engines:
- Models with abrupt changes of the hydraulic conductivity between adjacent cells (e.g. differences of many orders of magnitude), may lead to stability issues. Try to reduce the numerical difference in hydraulic conductivities between neighboring cells, or insert additional conductivity zones to smooth the transition between large gradients in hydraulic conductivity.
- Models with large differences in the cell dimensions between adjacent cells, may lead to stability issues. As a rule of thumb, grid spacing should not increase by more than 50 percent between adjacent cells. As well, an aspect ratio must generally be respected: a grid cell should not be more than 10 times larger in one direction than in another. You may want to edit the refinement(s) in your grid in problematic sections.
- Models with lateral discontinuities between cells in the same layer. may lead to numerical issues: Large changes in elevation (especially when your model has thin layers) can cause adjacent cells to become laterally “detached”, resulting in a lack of lateral continuity. This may introduce significant inaccuracies when simulating flow between cells in the same layer. Avoid this by reducing large changes in elevation over short distances, and/or refining your grid, and/or changing layer thickness. As a rule of thumb, adjacent cells in the same layer should overlap 50% of their “depth” (along the Z axis). You can use the View Row and View Column tools in Visual MODFLOW Flex to study areas in cross-section.
While the incorporating some above suggestions may help to fix some common causes of model non-convergence and stability, they are not a panacea and do not cover every situation. If these suggestions do not help you successfully run your model, additional thought may need to be put into your modeling conceptualization and numerical implementation, that is the non-convergence may be indicative of one or more defects in the conceptualization of the groundwater system.