I’ve been trying to simulate the determined released by a co2 cannister within a few seconds of it being punctured by a hole of a 1mm diameter. To do this I tried making a transient compressible simulation, which I would use to determine the exhaust velocity, density and gas pressure at the exhaust.
I tried using two methods. One was an internal flow simulation, where I created an internal flow region within the co2 cannister, and created a pressure inlet-outlet at the puncture hole, and set the initial pressure of the co2 inside the cannister to 60bar. I also made the walls of the cannister a no slip wall with an external wall derived heat flux.
I also tried doing an external flow thing, where I simulated the co2 cannisters puncture hole as a pressure inlet into an external flow region, with the inlet pressure being 60 bar and the initial pressure of the external region being atmospheric. I made the walls of the canister adiabatic, and I made the edges of the external flow region pressure outlets.
Both times, I got the same error, which is that the simulation diverged. I tried increasing relaxation factors, my number of correctors, and I made sure my mesh was high quality. None of that stuff worked. What could be the issue?
Thanks for sharing your question on the forum. It is a very interesting problem that you are trying to solve. You are on the right track with your approach, however, the issue you are facing is quite common when dealing with high-pressure compressible flow simulations.
Why is my simulation diverging?
The huge pressure difference between the canister (60 bar) and the ambient (1 bar) is the main reason for the divergence. This is a classic choked flow problem. The CO2 expands and accelerates to the speed of sound (Mach 1) at the puncture hole. This rapid expansion and high velocity create strong shockwaves and large gradients in the flow field, which are numerically challenging to resolve, especially in a transient simulation.
How to solve it?
I would recommend a different approach. Instead of starting with a transient simulation, it is better to first run a steady-state compressible flow simulation. This will be more stable and will help you to understand the flow characteristics at the puncture hole. Once you have a converged steady-state solution, you can then use it as an initial condition for a transient simulation if needed.
Some Recommendations:
Meshing: Create a fine mesh around the puncture hole to accurately capture the high-velocity gradients and the expansion fan. You can use a local mesh refinement for this.
Numerics: You can start with the default settings. If the simulation still diverges, you can try to reduce the relaxation factors and use the “bounded” schemes for the pressure and velocity.
Analysis Type: Use the Multi-purpose (paid) analysis type. This solver is designed for compressible flow problems with a wide range of Mach numbers.
I hope this helps you to solve your problem. Please let us know if you have any further questions.