CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Question on transient simulation in OpenFOAM and FLUENT (https://www.cfd-online.com/Forums/openfoam-solving/134903-question-transient-simulation-openfoam-fluent.html)

nicklj May 6, 2014 23:13

Question on transient simulation in OpenFOAM and FLUENT
 
Dear all:
Recently I'm trying to use OpenFOAM to simulate transient incompressible flow, and have some questions to inquire.

I know that in FLUENT, for transient flow, iterations are required within each time step, to confirm the result can converge at the end of the current time step. The default value is 20, which means if the result cannot converge within 20 iterations, the solver will march into next time step. This is normally how the transient solver works in my mind.

However, when perform transient simulation in OpenFOAM, using either PISO or PIMPLE, it seems that no iteration is required within one time step (Of course iterations are still required when solving equations, that's not my question). This can be seen clearly from one section of the log file:

Code:

Courant Number mean: 0.279317 max: 0.999569
deltaT = 0.00175747
Time = 5.92794

DILUPBiCG:  Solving for Ux, Initial residual = 8.03872e-05, Final residual = 3.01259e-10, No Iterations 4
DILUPBiCG:  Solving for Uy, Initial residual = 7.47932e-05, Final residual = 2.18265e-10, No Iterations 4
DILUPBiCG:  Solving for Uz, Initial residual = 5.96536e-05, Final residual = 1.09994e-10, No Iterations 4
GAMG:  Solving for p, Initial residual = 0.000123055, Final residual = 4.66822e-10, No Iterations 10
time step continuity errors : sum local = 1.54552e-12, global = 2.47586e-13, cumulative = -4.13283e-11
GAMG:  Solving for p, Initial residual = 2.08618e-05, Final residual = 6.33155e-10, No Iterations 8
time step continuity errors : sum local = 2.09623e-12, global = -2.88986e-13, cumulative = -4.16173e-11
DILUPBiCG:  Solving for epsilon, Initial residual = 2.95649e-05, Final residual = 9.94966e-11, No Iterations 4
DILUPBiCG:  Solving for k, Initial residual = 4.52894e-05, Final residual = 6.86864e-10, No Iterations 4
ExecutionTime = 3449.02 s  ClockTime = 3453 s

Courant Number mean: 0.279319 max: 0.999571
deltaT = 0.00175747
Time = 5.9297

DILUPBiCG:  Solving for Ux, Initial residual = 8.04511e-05, Final residual = 2.77023e-10, No Iterations 4
DILUPBiCG:  Solving for Uy, Initial residual = 7.47824e-05, Final residual = 2.18558e-10, No Iterations 4
DILUPBiCG:  Solving for Uz, Initial residual = 5.97415e-05, Final residual = 1.09586e-10, No Iterations 4
GAMG:  Solving for p, Initial residual = 0.000123775, Final residual = 5.54077e-10, No Iterations 10
time step continuity errors : sum local = 1.83445e-12, global = 2.88968e-13, cumulative = -4.13283e-11
GAMG:  Solving for p, Initial residual = 2.07948e-05, Final residual = 5.90437e-10, No Iterations 8
time step continuity errors : sum local = 1.95485e-12, global = -2.66983e-13, cumulative = -4.15953e-11
DILUPBiCG:  Solving for epsilon, Initial residual = 2.95488e-05, Final residual = 9.23568e-11, No Iterations 4
DILUPBiCG:  Solving for k, Initial residual = 4.52872e-05, Final residual = 4.31262e-10, No Iterations 4
ExecutionTime = 3449.6 s  ClockTime = 3453 s

It is clear that between time 5.92794 and 5.9297, only one standard PIMPLE step is performed, and no iteration occurs to confirm convergence at the end of this time step. In "fvSchemes", I've already assign "ddtSchemes" to be "Euler", so I think it should be an implicit time discretization.

May I ask why this happens? Actually the same situation happens in the "pitzDaily" case in the tutorial pimpleFoam directory, so I think maybe this is some mechanism exist in OpenFOAM. Can anyone help me to explain it?

Thank you very much!

Artur May 7, 2014 17:12

I don't know about how Fluent handles things I'm afraid. However, to solve the entire problem several times at one time step using PIMPLE you may increase the nOuterCorrectors in fvSolution to whatever value you wish. If you set it to 1 the solver will operate in PISO mode which, as you've pointed out, only iterates over each equation a number of times.

There is a substantial amount of discussion on this forum as to how the two algorithms differ, see for instance these threads:

http://www.cfd-online.com/Forums/ope...algorithm.html

http://www.cfd-online.com/Forums/mai...mple-work.html

Peace,

A

nicklj May 8, 2014 01:29

Quote:

Originally Posted by Artur (Post 490492)
I don't know about how Fluent handles things I'm afraid. However, to solve the entire problem several times at one time step using PIMPLE you may increase the nOuterCorrectors in fvSolution to whatever value you wish. If you set it to 1 the solver will operate in PISO mode which, as you've pointed out, only iterates over each equation a number of times.

There is a substantial amount of discussion on this forum as to how the two algorithms differ, see for instance these threads:

http://www.cfd-online.com/Forums/ope...algorithm.html

http://www.cfd-online.com/Forums/mai...mple-work.html

Peace,

A

Dear Artur,
Thank you very much for your reply and the information. It is very helpful. According to the references and CFD books, PISO is a kind of non-iterative method for transient problem.

I also found in this thread:
http://www.cfd-online.com/Forums/ope...algorithm.html
It seems that if the nOuterCorrectors is set to 1, the PIMPLE becomes identical to PISO.

Therefore, if I am not wrong, maybe the pisoFoam corresponds to the non-iterative PISO scheme in FLUENT, and pimpleFoam correspdons to the iterative PISO scheme in FLUENT, which providing the capability to perform outer iterations.


Regards,
Nick

RodriguezFatz May 8, 2014 03:22

I was wondering the same things when switching from Fluent to OpenFoam, but you are right.
pisoFoam is the same as if you set (in Fluent) the maximum number of iterations per time step to 1. PimpleFoam with any number of outer iterations is the same as a regular transient simulation in Fluent.
I did not check, whether piso=piso and simple=simple in Fluent and OpenFoam, but what you write is generally right.

nicklj May 8, 2014 22:30

Quote:

Originally Posted by RodriguezFatz (Post 490551)
I was wondering the same things when switching from Fluent to OpenFoam, but you are right.
pisoFoam is the same as if you set (in Fluent) the maximum number of iterations per time step to 1. PimpleFoam with any number of outer iterations is the same as a regular transient simulation in Fluent.
I did not check, whether piso=piso and simple=simple in Fluent and OpenFoam, but what you write is generally right.

Thank you very much. I'm so happy to hear that:D


All times are GMT -4. The time now is 17:15.