CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

pimpleFoam vs simpleFoam vs pisoFoam vs icoFoam?

Register Blogs Community New Posts Updated Threads Search

Like Tree98Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   March 21, 2021, 06:56
Question
  #41
Member
 
Tom
Join Date: Apr 2017
Posts: 50
Rep Power: 9
tom.opt is on a distinguished road
Quote:
Originally Posted by redbullah View Post
pisoFoam and pimpleFoam are explained in the documentation very similarly. Quoting from openfoam.com;
https://www.openfoam.com/documentati...soFoam_8C.html
https://www.openfoam.com/documentati...leFoam_8C.html
The only difference is the momentum source term is missing in pisoFoam documentatin. So does that mean that I can't add a momentum source term in pisoFoam unlike pimpleFoam?



Is there any reason someone would use piso instead of pimple?

The way I understand it at least, seems like pimple is the superior code. but maybe im wrong?
tom.opt is offline   Reply With Quote

Old   March 21, 2021, 07:46
Default
  #42
Senior Member
 
Join Date: Apr 2020
Location: UK
Posts: 736
Rep Power: 14
Tobermory will become famous soon enough
Quote:
Originally Posted by tom.opt View Post
Is there any reason someone would use piso instead of pimple?

The way I understand it at least, seems like pimple is the superior code. but maybe im wrong?
There are 2 ways of interpreting your question.

In terms of the solver algorithm, you can always make a PIMPLE solver "act in PISO mode" by setting nOuterCorrectors to 1 and nCorrectors to 2. That doesn't make PIMPLE "better", but it does make the algorithm more versatile, I suppose.

In terms of solvers, you might find that the PIMPLE solvers (eg pimpleFoam) often have more features built in (eg cf pisoFoam) - eg moving mesh, etc etc. That again makes the PIMPLE based solvers more capable ... but perhaps less efficient in terms of storage, and certainly more cluttered to read.

If you only want to run time-accurate, low Co# simulations (eg LES or DNS simulations), then you will want to run in PISO model, in which case pisoFoam is probably a "cleaner" solver to use than pimpleFoam. I'd argue there is still space for both.
Tobermory is offline   Reply With Quote

Old   March 21, 2021, 07:54
Default
  #43
Member
 
Tom
Join Date: Apr 2017
Posts: 50
Rep Power: 9
tom.opt is on a distinguished road
Quote:
Originally Posted by Tobermory View Post
There are 2 ways of interpreting your question.

In terms of the solver algorithm, you can always make a PIMPLE solver "act in PISO mode" by setting nOuterCorrectors to 1 and nCorrectors to 2. That doesn't make PIMPLE "better", but it does make the algorithm more versatile, I suppose.

In terms of solvers, you might find that the PIMPLE solvers (eg pimpleFoam) often have more features built in (eg cf pisoFoam) - eg moving mesh, etc etc. That again makes the PIMPLE based solvers more capable ... but perhaps less efficient in terms of storage, and certainly more cluttered to read.

If you only want to run time-accurate, low Co# simulations (eg LES or DNS simulations), then you will want to run in PISO model, in which case pisoFoam is probably a "cleaner" solver to use than pimpleFoam. I'd argue there is still space for both.
so if i have a very fine mesh with a Co<1 and want run LES I should go for piso?
tom.opt is offline   Reply With Quote

Old   March 21, 2021, 07:56
Default
  #44
Senior Member
 
Join Date: Apr 2020
Location: UK
Posts: 736
Rep Power: 14
Tobermory will become famous soon enough
Absolutely!

EDIT: the PIMPLE algorithm allows you to "cheat time" a little, by using large Co#'s (esp, Co > 1), which can be useful if you are not interested in time accuracy during the spin-up, but for LES work I would strongly suggest using high quality divergence and temporal schemes and keeping your Co# down to preserve temporal accuracy, otherwise you'll smear out your small scale turbulence.
Tobermory is offline   Reply With Quote

Old   March 22, 2021, 09:49
Default
  #45
Super Moderator
 
Tobi's Avatar
 
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 52
Tobi has a spectacular aura aboutTobi has a spectacular aura aboutTobi has a spectacular aura about
Send a message via ICQ to Tobi Send a message via Skype™ to Tobi
I totally agree but want to give more information (I am speaking about the Foundation version):


pimpleFoam
Algorithm operations can be set to:
  • PISO
  • PIMPLE
  • SIMPLE(C)


For nOuterCorrectors equals to 1, you operate in PISO mode. Hence, the Courant number should be less or maximum equal to one. Depending on the dynamic of your flow you need to have stricter Courant number limitations e.g., Co = 0.5.

However, many people do use the PIMPLE algorithm wrong. In my book, I described how the guy works. Nevertheless, if one uses PIMPLE we can go way beyond Co = 1 such as Co = 100. Sure, again, it depend on the dynamic in your system - nevertheless, it works quite well for the incompressible guy. For the compressible solver and large velocities, one is more limited.

Additionally, using PIMPLE allows one to relax the equations and fields during each PIMPLE iteration which allows to calculate very stiff systems which are heavily to handle using PISO.


Note: Using PIMPLE should always include the residual control for the SIMPLE loop, and hence, the outer correctors should be set to e.g., 100 or a large number but not to a value such as 4 in order to converge the explicit parts of our system. Commonly, if one sets up everything correctly and the boundary conditions allow to converge to a unique solution, one will find that the algorithm should find the solution within the first 10 outer correctors.

However, the amount of outer correctors depend on the Courant number in use, the explicit terms and their convergence and others. So it´s not a rule of thumbs. But one should keep it in mind



By the way, @Tobermory, why do you think that one needs to set up PIMPLE to have PISO using
  • nOuterCorrectors 1 (I agree)
  • nCorrectors 2 (I disagree)

In pisoFoam one can doe more outer correctors too, to converge the explicit parts more often
Tobermory likes this.
__________________
Keep foaming,
Tobias Holzmann
Tobi is offline   Reply With Quote

Old   March 22, 2021, 10:14
Default
  #46
Senior Member
 
Join Date: Apr 2020
Location: UK
Posts: 736
Rep Power: 14
Tobermory will become famous soon enough
Haha - good point, Tobi - and agreed. I guess I was talking about the vanilla PISO method, which was based on 2 pressure correctors.

There's nothing stopping you doing more, as you point out, if you think it helps for your case ... just keep in mind that the pressure solver is typically the most expensive part of each iteration, so for long run time transient calculations you probably want to be selective with this parameter.
Tobi likes this.
Tobermory is offline   Reply With Quote

Reply


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 Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Laminar simpleFoam and inviscid simpleFoam herenger OpenFOAM Running, Solving & CFD 7 July 11, 2013 07:27
SimpleFoam as Newtonian laminar flow solver titio OpenFOAM Running, Solving & CFD 2 March 8, 2013 05:44
Density in icoFoam Densidad en icoFoam manuel OpenFOAM Running, Solving & CFD 8 September 22, 2010 05:10
Error running simpleFoam in parallel skabilan OpenFOAM Running, Solving & CFD 2 August 29, 2008 10:42
Kubuntu uses dash breaks All scripts in tutorials platopus OpenFOAM Bugs 8 April 15, 2008 08:52


All times are GMT -4. The time now is 16:50.