CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   Courant number and implicit treatment (

pbo January 17, 2008 18:52

Hi there, was just wonderin
Hi there,

was just wondering:
in icoFoam, the momentum equations are treated implicitly, so why is there a Courant number limitation wrt stability? Fully implicit methods should not suffer from that, or am I missing anything here?



stephan January 17, 2008 19:10

hi, courant number limit is

courant number limit is a stability limit for explicit methods. but still using courant numbers above one with an implicit method is stable but information gets transported faster as it should.
i am not sure if everybody here does agree but this were my first thoughts...

ariorus January 18, 2008 07:47

Hello, you have also to not

you have also to notice that in icofoam the algorithm considers weak non linear coupling in momentum equations with respect to pressure velocity coupling: this is why momentum equations are solved only once per timestep.

The assumption is true only at small Courant numbers. So you have to be sure to have Courant numbers less than 0.5 at least.


stephan January 18, 2008 11:16

hi rosario, why do you thin
hi rosario,

why do you think that icoFoam solves "weakly coupled" equations - it looks like the standard piso which always needs at least two corrector stages?!

ariorus January 18, 2008 12:24

Hi, pressure and velocity a

pressure and velocity are strongly coupled and so PISO needs a correction loop, but the momentum equations are considered "frozen" even if velocity and pressure are corrected in the loop, so they are not solved again for the current time step.

This means that the advection terms in the momentum equations are considered not much coupled among themselves. This is true only at small Courant numbers.


stephan January 18, 2008 17:37

hi rosario, i dont see the
hi rosario,

i dont see the point: piso solves one predictor and two correctors for the velocity: the momentum equation is solved three time and thats exactly what issa recommends in his paper (his error analysis convinced at least me and himself)
on the other hand:is there any incomp. transient single phase solver which does different in foam, if yes which one?
i guess we can stop at the point that we simply disagree...

ariorus January 19, 2008 07:23

Sorry probably I was unclear,
Sorry probably I was unclear, I'm trying to explain it better. Anyway please correct me something is not correct.

icofoam PISO algorithm:

1) momentum equations are used in an implicit way to find a predictor value for velocity. The old value is used for pressure.

2) Using new velocity values, momentum and mass conservation, a Poisson equation is constructed.

3) The Poisson equation is solved. New p values and new velocities (satisfying now continuity) are found.

step 2) and 3) are repeated.

In my opinion the point with Courant is that in 2) and 3) (pressure correction loop), the momentum equations are used to compute a new velocity according to the new p, and velocities are found explicitly not implicitly, like at point 1. This makes necessary to assume weak coupling in non linear momentum terms and so small Co.

Am i wrong?

pbohorquez January 19, 2008 16:29

Dear Rosario, The segregate
Dear Rosario,

The segregated solution technique implemented in FOAM corresponds to successive substitution. Therefore there is no guarantee a converged solution can be reached (Jasak H, 2006). This fact is independent of the Courant number. For instance, you can think in a steady flow: If you knew the solution of the problem and used it as the first guess of the numerical solver with a large Courant number (Co>1), the solution would preserve equal to the initial guess. Moreover, if you introduced a small perturbation over this solution, "perturbation amplitudes would decrease" as time went on if the background flow was stable and the numerical solver was implicit, independent of the Courant number - this stability criteria is obtained from a linear stability analysis and therefore it should be carefully applied to non-linear problems. On the other hand, perturbation amplitudes would increase if an explicit scheme was employed with Co>1.

However, the case described above is not general. For a transient problem, the solution is changing from one to next time step. In the successive substitution approach, the coupling terms will be evaluated from the currently available solution and lagged. If the solution changes abruptly in time, successive substitution does not guarantee convergence - this fact is not related to the explicit/implicit character of the numerical scheme. If you got stability problems, a small Courant number and relaxing the equations would help to stabilize the numerical solution.

Best wishes,

Jasak H (2006) Numerical Solution Algorithms for Compressible Flows. Lecture Notes: University of Zagreb, Croatia

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