CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   Is it possible to use PISO algorithm for steady case (

Gearb0x February 23, 2010 10:42

Is it possible to use PISO algorithm for steady case

In fluent, when you are in a steady case you can choose SIMPLE or PISO for the solver.

In openfoam, apparently, SIMPLE is for steady and PISO for transient.

Is there a way to choose PISO even for steady state?

Thanks for your answers

matejfor February 24, 2010 03:34

well, steady state - strictly speaking is an average over time, or a transient with infinite time step. So this is also a way how to use PISO for steady state.

What is you motivation for using PISO for steady-state?


Gearb0x February 24, 2010 04:43


Thanks for the answer

My motivation was that with Fluent, PISO solver gave me better results than the SIMPLE solver so I wanted to try this in openFoam :)

djbungee February 25, 2010 05:39


in case the solution you find is steady, the temporal derivation should vanish and you could also deactivate this term in the code or use steadyState for ddtSchemes.

However, alternatively and dependent on how good your initialization is, you might also want to compute the case as unsteady with a given ddtSchemes (other than steadyState). Dependent on the size of the time step you chose, you can interpret this as relaxation as you enhance diagonal dominance of your coefficient matrix. I.e., the smaller Dt, the larger the cell-centered coefficient becomes in comparison to the other coefficients. The procedure becomes stiffer but it might help in not so well-posed problems with a bad initialization.

Best regards, Ulf.

David_010 July 7, 2010 04:03

Hi Ulf

Could you explain how to employ the PISO algorithm for a steady-state case so that it works as a relaxation? I am working with a SIMPLE algorithm without relaxation for the temperature and I am having problems due to that. So I have thought about use the PISO algorithm in the way you have suggested, but I donīt know exactly how to do it. My case problem is steady.

Thank you very much



matejfor July 7, 2010 05:07

why don't you employ some underrelaxation for temperature? It seems to be much more simple solution than using PISO. The easiest way to use PISO for steady computation is to run transient solution, during the computation you may try lengthen the time-step. Once solution stops changing you have steady state solution.

good luck

David_010 July 7, 2010 06:43

Thanks for your help

Yes I know that the best option is to apply a underelaxation for the temperature, but in the solver that I am employing (conjugateHeatFoam, in the 1.5-dev version) the underelaxation is not defined and I am not able to do it (I donīt have programming skills).

Thank you again, regards


ata July 14, 2010 06:59

Under relaxation factor
Hi David By changing the delta t you are changing under relaxation factor for a steady state case from one time step to an other not in solving equations in a single time step. Do you understand me? Good luck

David_010 July 14, 2010 09:40

Hi Ata

Thank you for your help. Well, I don't understand it very well. If I am solving a steady state case, how I can modify the time step? or, if the solver is transient, how I can specify that the case is steady? Do you mean that I can not employ the delta t of a transient solver as a underelaxation for a steady case?

Thank you very much again.


ata July 15, 2010 00:49

Under relaxation
Hi David
Consider you have a fully explicit scheme for a unsteady case. In this case you can use delta t as a under relaxation factor ti achieve steady state solution but if you have implicit terms in your scheme you need an iterative method for solving system of equations in each single time step in its relation is separate from delta t. So, you can use a full explicit scheme for solving a steady state problem but you must have enough time to steady state solution after transient solution achieve.
I hope my explanation is clear for you.
Best regards
Good luck

All times are GMT -4. The time now is 01:38.