
[Sponsors] 
July 27, 2017, 07:45 
Ways to get rid of negative pressure in numerical simulations

#1 
Member
AGN
Join Date: Dec 2011
Posts: 46
Rep Power: 8 
Hi,
I'm currently working on numerical simulation of supersonic flow past some bodies (bluff as well as sharp edge). Specifications of numerical schemes used: Governing equation: Euler equation. Time integration : SSPRK2, SSPRK3, Implicit Euler Limiters : minmod, Superbee, no limiter. Reimann solver : Roe flux with entropy fix, AUSMDV Gradient calculation: Least square mesh type : triangular (right angled triangle) or quadrilateral. For some cases, I'm getting negative pressure, since the speed of sound is based on negative pressure (absolute pressure), I can't proceed further in the simulation. The procedure I followed so far, to get off "negative pressure" that worked for some cases are: 1) Most of the time oscillations occur in the interpolation of dirty data, so I added more diffusion in interpolation. 2) Making uniform varying mesh or uniform mesh 3) Reducing CFL number, make a smooth variation in CFL ramping. 4) Changing flux function Please tell me some good ways to get rid off or "good fix" for negative pressure. 

July 27, 2017, 09:49 

#2 
Senior Member
Michael Prinkey
Join Date: Mar 2009
Location: Pittsburgh PA
Posts: 358
Rep Power: 17 
I assume that you are calculating the pressure from the density and enthaply/temperature/energy. I suspect that you are choosing too large of a time step at some point, generating a negative density or energy variable. You can detect this and redo that step with a smaller delta t. The first step is to find out what variable is creating the negative pressure.
The balance equation for mass is easy and might be the first place to look. You can quickly see what the maximum timestep can be (percell) based on the (negative) mass flux imbalance divided by the mass in the cell. If you are chasing steady state, you might want to at that condition to the percell timestepping scheme. Or you could loop over the domain and find the limiting timestep for positive density if you are doing transient simulations. Also note that they the limiting cell will come out with density equal to zero. That is better than negative, but may not be the best. You may want to specify a hard minimum density and limit the timestep to that. If you do that and you still have problems, the same treatment could be done for energy. But I wouldn't start there. 

July 27, 2017, 10:27 

#3 
Member
AGN
Join Date: Dec 2011
Posts: 46
Rep Power: 8 
Thanks Prinkey,
I calculate flux using Reimann solver, then residue, from residue I march over time. Then I calculate primitive variable from $Q^{n+1}$. Time step is based on maximum wave speed, dt =CFL*node_area/max_wave_speed*face_length; I think this is the standard procedure to calculate "dt" in supersonic flow. Sometimes I operate at CFL number less than one for the implicit case. I guess that is pretty low for implicit one and I get ve pressure only for the supersonic case not getting such issue in subsonic cases. I think your suggestion is, to reduce CFL number further for that cell if negative pressure detected. Am I right? 

July 27, 2017, 20:30 

#4 
Senior Member
Michael Prinkey
Join Date: Mar 2009
Location: Pittsburgh PA
Posts: 358
Rep Power: 17 
The fluxes for mass are going to determine the new time densities however they are calculated (primitive or conserved variable interpolation or exact or approximate Riemann solver). The new time density should never be allowed to go negative. There are two ways to prevent thatfor explicit time integration, you reduce the timestep (and thereby the CFL number) to prevent too much mass outflow from the cell. Or, you build a pressure(like) equation using the mass conservation equation and solve the implicit system for a pressure/density/velocity correction that satisfies an the mass equation implicitly for the next timestepthat generally doesn't play well with highspeed flows and Reimman solvers. I don't know of any other way.


July 27, 2017, 21:43 

#5 
Member
AGN
Join Date: Dec 2011
Posts: 46
Rep Power: 8 
Thank you,
I like the first one. I shall try whether there is any possibility of corrector step to calculate new time step in such cases. 

July 27, 2017, 22:57 

#6  
Senior Member

Quote:
For the Roe scheme this can be fixed by a proper entropy fix, like a switch to an HLL like scheme (however, switch conditions are not anymore trivial like in the Harten fix). The literature on this is sparse and slightly non consistent, considering the triviality of the possible solutions. Check these: http://www.sciencedirect.com/science...21999191902113 https://www.google.it/url?sa=t&sourc...SAy1ihJnRMZkGA For AUSM like schemes, you need at least AUSM+ (ok, here I'm not 100% sure, so you need to check by yourself). I use the all speed HLLE+ scheme as entropy fix for an all speed Roe scheme (i.e., with preconditioning) http://scholar.google.it/scholar_url...NcQgAMIGygAMAA 

July 28, 2017, 03:03 

#7 
Member
AGN
Join Date: Dec 2011
Posts: 46
Rep Power: 8 
Thanks, Paolo
I think you prefer HLLE+(P) over Roe scheme with Harten entropy fix, I shall try that. Could you suggest some good Reimann solver for time accurate calculations, please? 

July 28, 2017, 04:05 

#8 
Senior Member

Note that all the suggestions from Micheal still apply. That is, a negative density is certainly coming from an instability. The one I suggested is only one of the possible instabilities.
Note also that, while there is nothing wrong in it, per se, I don't just use a preconditioned HLLE+, I adopt the approach as suggested at the end of the second link I posted above. That is, the preconditioned HLLE+ is used only as entropy fix for a classical preconditioned Roe scheme. The whole reasoning is based on:  HLL schemes do not need entropy fixes  HLLE is also positivity preserving  HLLE can be casted in Roe form, from which it differ only by eigenvalues  entropy fixes are based on eigenvalues  positivity preserving issues arise in a subset of cases where entropy fixes are needed  use HLLE as entropy fix for Roe Finally, note that the non preconditioned HLLE+ scheme is reported in the paper to need some additional twiddling in order to work. This was not needed (I can confirm) for the preconditioned scheme. I'm not an expert of the matter, just a practicioner, so take this with a grain of salt, but I currently use this scheme (both preconditioned and not preconditioned) for time accurate results without particular issues. For example, I tested it on the 5 Toro shock tube tests without problems (where, instead, Fluent failed for some of them, no matter what scheme was used). I also use it in an Immersed Boundary framework, with a lot of interpolations on not very nice grids and it never gives problems (however, I mostly focus on steady problems). 

Tags 
euler equation, finite volume method 
Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
blockMesh error  Negative Volume Block  adoledin  OpenFOAM Native Meshers: blockMesh  2  June 22, 2016 10:44 
High negative pressure with interPhaseChangeFoam  legione  OpenFOAM Running, Solving & CFD  7  July 5, 2015 10:28 
Negative absolute pressure in core vortex  clod  FLUENT  1  March 11, 2015 06:33 
Modeling transient negative pressure (suction pressure) in outlet  N_mrtz  FLUENT  1  July 18, 2013 20:59 
channelFoam for a 3D pipe  AlmostSurelyRob  OpenFOAM  3  June 24, 2011 13:06 