Addressing Flow Simulator Solver Convergence Issues


Flow Simulator (FS), like many iterative solvers, can have convergence issues. This discussion provides some information on the FS solver and provides some suggestions to address convergence issues.
Introduction
The FS solver uses an iterative procedure to solve for the element flow rates and nonboundary chamber pressures. At each iteration the mass flow () continuity and a mass flow vs. pressure derivative is used to determine the amount to change the pressure of the nonboundary chambers. Damping is used to stabilize the pressure changes for each iteration.
This usually results in solver convergence within a reasonable number of iterations (< 1000), but sometimes the model needs some changes to achieve convergence. The solver also needs stable momentum and energy (pressures and temperatures) for convergence. So, some models may have mass flow convergence but not temperature convergence.
The rest of this blog discusses how to diagnose and fix a model with convergence problems.
Checking the Model
Model checking is essential for model accuracy and sometimes convergence. Model checking should always be done regardless of solver convergence. The larger the model error the more it can affect convergence. An element area that is wrong by 10% will affect the results but may not affect convergence. An area wrong by 1000% may result in a model that does not converge. Items to check include:
- Boundary pressures and temperatures.
- Element geometry (diameters, areas, lengths) and pressure loss information (Cd and K)
- Reasonable fixed flowrates (flowrates that are above the choked flowrate are a common problem).
- If it’s a rotor/stator model check element radii, rotation, and cavity inputs.
Some of these items can be checked in the GUI, but they can also be checked in the convhist_fi.out file that is written by the solver. See the top of the file for input problems that should be addressed.
Reviewing Model Convergence
Solver convergence information is written to the Solution Panel during the solver run. If the model does not converge, the solver will stop at the specified number of iterations and display an error message. The convhist_fi.out file also contains convergence information.
The “LOC” and “VAL” columns of the mass imbalance row (first row) are usually the most informative. If “VAL” is stuck at high value (> 100%) it indicates the solver is far from convergence and lower damping may help. If “VAL” is low and is falling, convergence may be achieved with more iterations or a small change to the convergence criteria. The default iteration limit is 100. Increasing this to 1,000 may help. Increasing to higher values (like 10,000) is usually not helpful.
The “LOC” column indicates the flow chamber with the biggest mass imbalance. Inspect the elements near this chamber for any modeling errors or opportunities for simplification (such as removing elements that do not restrict the flow).
The default mass flow convergence criteria is based on a percentage of the flow through the chamber (Tol1). The default is 1% (the mass imbalance must be less than 1% of the mass flow through a chamber). If model has convergence problems at a chamber with very low flow through the chamber, another mass flow criteria may allow the model to converge. Using an absolute mass flow imbalance (Tol3) is a good alternative.
Damping
Damping may also have a big effect on solver convergence. The solver damping can be found in the “DAMPING” column of the convergence history. There is damping for the pressure change as discussed earlier and, there are 3 types of temperature damping.
FS uses an adaptive pressure damping that changes with model convergence. The default damping range is between 0.2 and 2.0. These default values work for most models. If a model does not converge and the damping is stuck at the low limit, try reducing the damping lower limit to 0.01. Values lower than 0.01 are not usually helpful. Decreasing the upper limit from 2.0 is rarely needed, but try it if the damping is stuck above 1.0. The damping can also be set to a constant value, but this is rarely needed.
If the convergence history shows flowrates are converging and temperature is not converging, then consider adjusting the temperature damping. There are 3 types of temperature damping:
Thermal Network Solution Parameter Damping – damps temperature change for thermal nodes. Enter values from 0.1 to 1.0. This is only the starting damping value, and it will be automatically adjusted based on the thermal network convergence. Thermal networks usually have no problems converging. If there is a convergence problem within the thermal network, search for nonphysical inputs.
Relaxation Factor on thermal-Fluid Coupling – damps temperature and heat flow passed between the flow and thermal network. Enter values from 0.1 to 1.0. This is only the starting damping value, and it will be automatically adjusted based on the thermal network convergence.
Fluid Chamber Temperature Damping – damps the temperature change for fluid chambers. Enter values from 0.01 to 1.0 (1.0 = No Damping). If the model does not have a thermal network, this is the only temperature option damping that will affect convergence. Constant values usually work best for models with temperature convergence problems. Start with high values (0.8) and decrease if needed (0.5 or 0.2).
Vortex Elements
If the model has vortex elements and the solver does not converge, consider changing vortex element flow flags. If the model does not converge, see the list of problem vortex elements near the end of the convhist_fi.out file. Also, see if any vortex elements are attached to the chamber with the biggest mass flow imbalance.
The vortex element flowrate is determined by the mass flow discontinuity at each end of the element. The flowrate is not calculated from the pressures like other elements. The flow flag controls the logic used to get the vortex element flowrate. The default option, “Automatic”, is usually best, but the “Estimated Flow” option is a good choice for problematic elements.
Initial Conditions
Most steady state models are not sensitive to the initial conditions for chamber pressure and temperature so the incompressible initializer in the GUI is sufficient. There are 3 choices if you believe changing the initial conditions is needed.
- Manual entry of the P and T for internal chambers.
- Use results from a previous analysis (*.res) file.
- Run the compressible initializer in the solver.
Transient analysis requires specified initial conditions so don’t use the GUI incompressible or the solver compressible initializers.
Pressure and Temperature Limits
The solver may diverge and hit pressure and temperature limits while iterating. Sometimes the solver can recover, but sometimes it does not, particularly when fluid properties from Coolprop or NASA CEA are used in the model. The default pressure and temperature limits are large. Some models benefit from reduced limits.
Please don’t hesitate to contact the Flow Simulator development team if you would like help with a specific model. Create a support ticket at
or leave a comment below.