If your simulation ends unexpectedly with the following error message, you may have a non-physical, diverged, or stalled solution:
What is a “non-physical solution”?
This occurs when the simulation is predicting a physical behavior that is not possible in reality. The solver has detected this abnormality and determined the simulation cannot recover to a realistic result, so the simulation ends.
Examples of conditions that trigger this are:
Compressible (ideal gas) solver: pressure, density, or temperature reaches zero
Incompressible solver (constant density with energy): temperature reaches zero
Why do we automatically stop?
We stop the simulation to save you credits and localize the source of the issue so that it may be identifiable. Once non-physical values are predicted in the simulation, the results aren’t reliable and there's no benefit to running out the computation further - the non-physical state tends to spread from wherever it originated.
Why is this occurring?
Often the source is an inappropriate user input. We suggest reviewing the Setup Summary to ensure input values are specified as desired. There are multiple reasons that can cause a simulation to diverge; below we describe several common sources for this behavior.
Backflow at an Inlet Boundary Condition
If the initial condition pressure is greater than an inlet’s pressure, backflow can happen through the inlet (e.g., flow moving in the wrong direction). This will lead to solver stability issues and can be avoided by adjusting the volume’s initialization or boundary condition’s pressure value.
Inconsistency Between Boundary and Initial Temperatures
If a boundary condition is given a different temperature than its associated volume is initialized to, at startup the solver will struggle to reconcile this discontinuity. Ensure corresponding boundaries and volumes agree on the initial temperature.
Initial Velocities of Zero
Initializing volumes with zero velocity can lead to solver instability. We suggest using a small initial velocity instead (promoting flow from inlet to outlet).
Difficult Case Configurations
If you are trying to simulate challenging flow conditions such as very high speed flows (e.g., large Mach or RPM values) or cases involving extreme pressures, it can be advantageous to “step” your way towards these flow conditions through a series of simulations. In this approach you design multiple stages, increasing the flow complexity at each stage and initializing from the previous stage’s solution. Note that this may require scaling other boundary condition parameters appropriately for each individual simulation.
If using a far-field, initialization via the Far-field Values option is preferred so that the initial and boundary conditions are guaranteed to be in sync, reducing the adjustments you must make at each stage.
Where is this occurring?
When the solver terminates due to encountering a non-physical solution, it will exit cleanly and write a final solution for inspection. Note that this final solution should not be considered physically meaningful and should not be used to initialize another solution.
It can, however, be helpful to visualize regions exhibiting non-physical behavior when trying to correct your simulation setup. These regions are best isolated by looking for extreme values of either Mach, velocity, temperature, or CFL number (via Visualization Tools such as thresholding, iso-surfaces, or slices):
Mitigation Strategies
Robust Startup
When the solver iterates from initial conditions (e.g., a uniform velocity field), which are often quite different from the true physical behavior, the solver can be prone to non-physical solutions until a more realistic flow field is established.
One way to push through this period is by adjusting the Robust Startup settings (part of Advanced Solver Settings > Solution Controls), where we use less accurate but more robust settings for a brief period. Reducing the Initial CFL (more gradual ramping) or increasing the number of Robust Startup Iterations (number of iterations at 1st-order accuracy) will increase the robustness of the solver.
Another way to address this is to improve the realism of the initial condition by Initialize-ing from an Existing Solution. Particularly if this solution is “nearby” to the flow in the current simulation, this will pose fewer challenges for the solver.
Advanced Solver Settings Adjustments
After the robust startup period, the solver tries to internally mitigate some issues during runtime by locally reducing accuracy on a temporary basis in an attempt to move past potential issues.
If these automated mitigations don’t work, we suggest using Advanced Solver Settings, which are accessible within each individual Physics’ section by clicking Customize:
First adjust the Solution Controls, which control how aggressively the solver iterates toward the final solution without changing its accuracy. Switch the preset to a more conservative option or manually adjust the values for increased robustness (e.g., lower CFL, higher Maximum Linear Iterations, or lower Linear Solver Tolerance).
If the Solution Controls are not effective, you can adjust the Spatial Discretization settings, which do affect the accuracy of the final solution, to a more conservative preset. Another secondary mitigation is to switch the Solution Control gradient method to “Green-Gauss”.