- **Main CFD Forum**
(*https://www.cfd-online.com/Forums/main/*)

- - **Pressure correction on SIMPLE
**
(*https://www.cfd-online.com/Forums/main/8140-pressure-correction-simple.html*)

Pressure correction on SIMPLE
Greetings, For a simple wind pipe, using laminar incompressible NSE and SIMPLE scheme, I have problem I need some help with. The pressure correction step: P_old += P_new makes my pressure values TOO large over a short period of time, although for a simple pipe velocity converges, but not pressure. If I do P_old = P_new instead, pressure converges but mass conservation is compromised. Which one is the correct? Any idea about the nature of this problem I'm facing?
Thanks a lot!! |

Re: Pressure correction on SIMPLE
<table width="50%"> <tr><td> Did you try to overrelax (or underrelax) pressure correction term? I mean instead of using:
P_old += P_new try: P_old += alpha * P_new where alpha is an over/underrelaxation factor (overrelaxation for alpha > 1). Some time ago I wrote a paper about SIMPLE where I used overrelaxation factors to speed up covergence - see my page and search for "Driven Cavity" paper. </td></tr> <tr><td> Maciej Matyka<A HREF="http://panoramix.ift.uni.wroc.pl/~maq/eng/">http://panoramix.ift.uni.wroc.pl/~maq/eng/</a> </td></tr> </table> |

Re: Pressure correction on SIMPLE
Hey,
SIMPLE worked with over-relaxation for you? Regs Y |

Re: Pressure correction on SIMPLE
Nope, just wanted to point out that not only underrelaxation exists. Did not try to run SIMPLE with overrelaxation.
Best, M. |

Re: Pressure correction on SIMPLE
Thanks Matyka. Actually I have your simulations CD and it was usefull, although I don't understand why I'm facing this problem. I'll try to better explain the situation.
I modelled a 3D wind pipe, initial dimensionless velocity 1 on inlet area, 0 anywhere else. Pressure is 0 everywhere at iteration 0. When I start iterating, since the velocity difference is large, a large pressure difference occurs, trying to push the air towards the other end of the pipe. The problem is, at some point the pressure difference stops being that large, but since I use P_new += alpha*P_old for pressure correction the pressure values start acumulating and at some point in time I have HUGE pressure values and then the simulator starts having problems ... Using this approach, the pipe converges perfectly, but when I use a more complex environment, such as a pipe full of obstacles, it would take longer to converge, but pressure explodes before convergence. Did I make my point now? Thanks for the help, guys. |

Re: Pressure correction on SIMPLE
After correcting the velocity components, update pressure as follows;
C --- CORRECT PRESSURE AT CELL-CENTER PPREF=PP(IPREF,JPREF) IF(IPRESS.EQ.1) PPREF=0. DO I=2,NIM DO J=2,NJM P(I,J)=P(I,J)+RELAX(1)*(PP(I,J)-PPREF)*KBLK(I,J) PP(I,J)=0. END DO END DO PREF=P(IPREF,JPREF) IF(IPRESS.EQ.1) PREF=0. DO I=1,NI DO J=1,NJ P(I,J)=P(I,J)-PREF END DO END DO Here IPREF, JPREF is a reference point, usuallly IPREF=2, JPREF=2. IPRESS=1 means there is a pressure bounary condition in the solution domain. IPRESS=0 if there is no pressure boundary condition in the solutiopn domain. KBLK(I,J)=1 for fluid and 0 for solid. RELAX(1) is the under-relaxation factor for pressure correction.( for SMPLE, RELAX(1)=0.7, for SIMPLEC, RELAX(1)=1.) Keep in mind updating PP(I,J)=0 at every iteration level. NIM=NI-1, NJM=NJ-1 Halim CHoi |

Re: Pressure correction on SIMPLE
The idea is, in the beginning the pressure difference is large so I get large pressure values. After some time, the difference gets smaller but since:
P(I,J)=P(I,J)+RELAX(1)*(PP(I,J)-PPREF)*KBLK(I,J) it keeps on accumulating and the large values from the beginning remain since I won't get any negative pressure values. Could it be my initial conditions? I start with pressure=0 everywhere and fix it to zero in the outflow cells. I expected to get a larger pressure value close to the inlet and it would decrease to zero the closer it gets to the outflow area, but that's not what's happenning. I appreciate the attention. |

All times are GMT -4. The time now is 02:42. |