
[Sponsors] 
February 1, 2011, 09:23 
On the pimpleFoam solution algorithm

#1 
Senior Member
Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 368
Rep Power: 12 
Hi all, I'm trying to go deeper into the solution algorithm implemented in the pimpleFoam transient solver, especially for what concerns URANS incompressible applications. This is what I have understood about the solver till now (please, correct me if I'm wrong)
1) At the beginning of the time step, the solver applies the PISO algorithm for pressurevelocity coupling (with a given number of PISO loops, tipically 2) and then solves the transport equations for the turbulent quantities 2) If the outer loops parameter (nOuterCorrectors) is set > 1, the solver turns back and performs an additional integration (formally identical to the procedure described in point (1) ), but this time using as initial values the final values (eventually underrelaxed) obtained after the previous time integration. 3) Point 2 is repeted a number of times depending on the nOuterCorrectors value First question: if all of those statements are correct, this means that with nOuterCorrectors set to 1 the whole procedure reduces to the classical PISO algorithm, is it right? Second question: using the outer loops (and underrelaxation) allows to increase a lot the Courant number without loosing stability of the solution. However, what is the dependency between the number of the outer loops and the max Co allowed? I mean, using only one additional loop (thus performing two complete integrations per time step) is enough for pushing the max Co above 2 (maybe 45)? Third question: what about the time accuracy? Of course the time resolution is far less critical in the URANS approach than in the LES one, but how will be affected the solution by a very large time step (assuming that the outer correction still preserves from instability)? Any opinion and/or suggestion will be really appreciated Thank you all V. 

February 2, 2011, 05:28 

#2 
Senior Member
Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 368
Rep Power: 12 
So no one interested in this topic?
V. 

February 2, 2011, 05:45 

#3 
Senior Member

I am very interested on this topic.
From my limited knowledge on PIMPLE, I would say that the answer to your first question is positive. Your second question is more difficult to answer. I have used PIMPLEbased solvers quite a lot, mostly using maxCo=1, so what PIMPLE gives me is more stability in each timestep iteration in comparison to PISO. Working with maxCo>1 has mixed results in my casestudies: I can work with, eg, maxCo = 2, but anything higher than that blowsup the simulations. Regards, Jose 

February 2, 2011, 07:26 

#4  
Senior Member
Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 368
Rep Power: 12 
Quote:
Best Regards V. 

February 2, 2011, 10:12 

#5 
Senior Member
Thomas Jung
Join Date: Mar 2009
Posts: 100
Rep Power: 10 
It probably all depends on your case  but, for my calculations, experience has shown that, when using CrankNicholson=1 for time discretization, results do not depend (much..) on timestep, as long as it remains stable, which is up to max. Co around 1015. Euler, however, is rather sensitive to time step size. I would perform a small test series with different timesteps.


February 2, 2011, 10:46 

#6 
Senior Member
Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 368
Rep Power: 12 
I agree.
What do you mean exactly? In OF 1.6 (don't know if it's still true for later releases) if you want to integrate your unsteady problem using the Crank Nicolson metod you simply have to use the arithmetic mean of the explicit and fully implicit terminologies implemented in OF (0.5*(fvc::...+fvm::...)) . Again, what do you mean with Euler? Fully explicit (fvc::...) or fully implicit (fvm::...)? If the latter, this time step dependency sounds a bit strange to me, as it should be at least as stable as the Crank Nicolson one... I agree once again...the problem is that I have to delay this sistematic study because our computing facilities are at the moment saturated by much "heavier" runs (such as the once described above...) Thanks for the reply V. 

February 2, 2011, 13:10 

#7 
Senior Member
Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 368
Rep Power: 12 
Ok, I got it: you are talking about differencing schemes and not integration methods...However, still the higher time step sensitivity of the Euler scheme sounds strange to me...And, by the way, what exactly is the CrankNicolson differencing scheme (as I've read tons of literature about the integration method, bot nothing about a differencing scheme called this way...sorry for my ignorance)?
Best Regards V. 

February 2, 2011, 14:53 
pimple and courant number

#8 
New Member
Join Date: Mar 2009
Posts: 18
Rep Power: 10 
I have carried out some experiments and I think that:
1) Yes, if you use nOuterCorrectors=1, it is a PISO methos. But in this case you must not underrelax. 2) Simulating laminar flow around a circular cylinder (Re=180), I tried nOuterCorrectors=10 and this allowed me to have maxCo=5. 

February 3, 2011, 05:44 

#9  
Senior Member
Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 368
Rep Power: 12 
Quote:
Quote:
Thanks for sharing your experience V. 

February 3, 2011, 11:48 
pimple and courant number

#10 
New Member
Join Date: Mar 2009
Posts: 18
Rep Power: 10 
I was simply testing the software, and you are right about the time. Does not make sense to use a lot of outer corretions. It is better to use a lower value of maxCo and stick to one or two outer corrections.


February 7, 2011, 06:11 

#11 
Senior Member
Thomas Jung
Join Date: Mar 2009
Posts: 100
Rep Power: 10 
Vesselin,
Sorry for the inaccuracy and saying integration instead of differencing... CrankNicholson to me means second order, implicit time differentiation, as opposed to first order for Euler. And just to clarify: I did not say CrankNicholson was more stable, I wanted to say that (as to be expected for a second order scheme..) results depend much less on time step size using that scheme, something one easily forgets as all tutorials I have seen seem to be set to use Euler scheme. 

February 7, 2011, 06:39 

#12  
Senior Member
Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 368
Rep Power: 12 
Quote:
1) Apart from the time differentiation choice, how did you reach a max Co of 1015? I mean, what about the number of outer correctors, of PISO correctors and the URFs? 2) Have you also tried the backward timedifferncing scheme? Thank you once again V. 

February 7, 2011, 09:19 

#13 
Senior Member
Thomas Jung
Join Date: Mar 2009
Posts: 100
Rep Power: 10 
I have modified the solver to repeat the inner PISO loop until initial residuals for all equations are below a given value, 1e4 seemed to be enough ( as INITIAL residual). For maxCo=15, this results in several (up to something like 7,8,..., depends also on mesh size) outer iterations, and doing this number of outer iterations it seems not to be important anymore how many corrector steps I do, 1 seems to be enough. URF's are 0.8 to 0.9 for pressure and momentum.
I did not try the backward time differencing scheme. Have a lot of fun! 

February 7, 2011, 09:50 

#14  
Senior Member
Vesselin Krastev
Join Date: Jan 2010
Location: University of Tor Vergata, Rome
Posts: 368
Rep Power: 12 
Quote:
Regards V. 

July 25, 2011, 10:46 
PIMPLE solver dieselEngineFoam

#15 
New Member
Arun
Join Date: Mar 2009
Posts: 25
Rep Power: 10 
Hi All,
I am currently simulating direct injected diesel engine simulations with dynamic meshing dieselEngineFoam solver. I with PISO algorithm, I get maxCo number about 0.1 0.3, with stable solution for timestep between 0.005 – 0.05 CAD, with 1mm mesh size. The I have tried using PIMPLE solver, and the both the corrector values was set to 4. I thought but doing this I could reduce the computing time since it involves chemical reactions as well. However, from my testing so far I see that the simulations crashes during the “chemistry solve” part, when larger timestep size is being used (e.g 0.1, 0.25). So even by using PIMPLE solver I don’t really gain in reducing computing time, in fact I think it takes longer at the moment as compared to my original PISO settings, since no matter what my maxCo number is well around 0.10.3. Any suggestion to reduce computing time? So my question here, is there any other way to reduce computing time? Is it possible for me to increase the mesh size (more than 1mm) and reduce computing time by using PIMPLE? Parallel processing is not an option here due to the version of OF i am using at the moment. A 

September 6, 2012, 08:28 

#16 
Senior Member
Julien
Join Date: Jun 2012
Location: France
Posts: 152
Rep Power: 7 
Hi everybody,
excuse me for not answering any question. I just want to share my little experience. I am running external aerodynamics; th egoal is about Vortex Shedding with high Reynolds number. I was running with PISO, trying to have macCo near to 1. Then, I just changed the application to pipleFoam, with an adjustableTimeStep and maxCo = 5. In fvsolutions, I copied my solver parameters to the "Final" ones (e.g. "(Uk)" to "(Uk)Final" and choose nOuterCorrectors 2 . And it seems to work well! In this case, my calculation is much faster! In this case, about 2,45 times faster. 

November 15, 2012, 03:06 

#17 
Member
Suranga Dharmarathne
Join Date: Jan 2011
Location: TX, USA
Posts: 39
Rep Power: 8 
What is your mesh size and what is your maximum velocity. I am facing a similar type of problem with LES


November 15, 2012, 05:25 

#18 
Senior Member
Julien
Join Date: Jun 2012
Location: France
Posts: 152
Rep Power: 7 
(I am not sure I am concerned by sdharmar, but I will answer anyway...)
My cell size is 1cm and my object is 10cm x 20cm. I know it seems very coarse, but it gives the results I want! (I am interested in the vortex shedding, thus in large unsteadyness, not in small eddies...) 

Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
grid dependancy  gueynard a.  Main CFD Forum  19  June 27, 2014 21:22 
Exact solution of Burgers equation  mcaro  Main CFD Forum  3  January 25, 2011 07:46 
How to get the solution of last time step?  lzgwhy  Fluent UDF and Scheme Programming  0  September 15, 2010 22:23 
Integration along a line during solution  DaRumpel  CFX  16  September 2, 2010 11:17 
Energy Equation Solution Algorithm  Chandra  Main CFD Forum  6  June 23, 2006 08:05 