CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Main CFD Forum

Ways to get rid of negative pressure in numerical simulations

Register Blogs Members List Search Today's Posts Mark Forums Read

Like Tree3Likes
  • 1 Post By mprinkey
  • 1 Post By sbaffini
  • 1 Post By sbaffini

Reply
 
LinkBack Thread Tools Display Modes
Old   July 27, 2017, 07:45
Default Ways to get rid of negative pressure in numerical simulations
  #1
Member
 
AGN
Join Date: Dec 2011
Posts: 46
Rep Power: 8
arungovindneelan is on a distinguished road
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.
arungovindneelan is offline   Reply With Quote

Old   July 27, 2017, 09:49
Default
  #2
Senior Member
 
Michael Prinkey
Join Date: Mar 2009
Location: Pittsburgh PA
Posts: 358
Rep Power: 17
mprinkey will become famous soon enough
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 (per-cell) 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 per-cell 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.
mprinkey is offline   Reply With Quote

Old   July 27, 2017, 10:27
Default
  #3
Member
 
AGN
Join Date: Dec 2011
Posts: 46
Rep Power: 8
arungovindneelan is on a distinguished road
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?
arungovindneelan is offline   Reply With Quote

Old   July 27, 2017, 20:30
Default
  #4
Senior Member
 
Michael Prinkey
Join Date: Mar 2009
Location: Pittsburgh PA
Posts: 358
Rep Power: 17
mprinkey will become famous soon enough
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 that--for 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 timestep--that generally doesn't play well with high-speed flows and Reimman solvers. I don't know of any other way.
arungovindneelan likes this.
mprinkey is offline   Reply With Quote

Old   July 27, 2017, 21:43
Default
  #5
Member
 
AGN
Join Date: Dec 2011
Posts: 46
Rep Power: 8
arungovindneelan is on a distinguished road
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.
arungovindneelan is offline   Reply With Quote

Old   July 27, 2017, 22:57
Default
  #6
Senior Member
 
sbaffini's Avatar
 
Paolo Lampitella
Join Date: Mar 2009
Location: Italy
Posts: 815
Blog Entries: 17
Rep Power: 23
sbaffini will become famous soon enoughsbaffini will become famous soon enough
Quote:
Originally Posted by arungovindneelan View Post
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:

Reimann solver : Roe flux with entropy fix, AUSMDV
None of the two schemes mentioned is known to be also positivity preserving, so they are expected to produce negative density near vacuum confitions or for strong rarefactions, independetly from the CFL, implicit or explicit.

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
arungovindneelan likes this.
sbaffini is offline   Reply With Quote

Old   July 28, 2017, 03:03
Default
  #7
Member
 
AGN
Join Date: Dec 2011
Posts: 46
Rep Power: 8
arungovindneelan is on a distinguished road
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?
arungovindneelan is offline   Reply With Quote

Old   July 28, 2017, 04:05
Default
  #8
Senior Member
 
sbaffini's Avatar
 
Paolo Lampitella
Join Date: Mar 2009
Location: Italy
Posts: 815
Blog Entries: 17
Rep Power: 23
sbaffini will become famous soon enoughsbaffini will become famous soon enough
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).
arungovindneelan likes this.
sbaffini is offline   Reply With Quote

Reply

Tags
euler equation, finite volume method

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


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


All times are GMT -4. The time now is 10:13.