CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   Why sometimes momentum predictor step is not performed (

liu July 1, 2005 23:50

In some of the solvers, such a
In some of the solvers, such as interFoam, the momentum equation is not solved (i.e., no solve(UEqn == fvc::...)). Some solver (such as rhoTurbFoam) has a switch to choose whether this step is performed or not.

The original paper of PISO algorithm has this as a essential step.

1. Why the difference?
2. If the gravity is included as in interFoam and I want to do the momentum predictor step, should I include this gravity effect in the UEqn? Like:
solve(UEqn == -fvc::grad(p) - fvc::grad(rho)*gh)?

henry July 2, 2005 08:01

1) Doing a momentum predictor
1) Doing a momentum predictor is not an essential step for the convergence of the PISO corrector loop although it is sometimed benefitial but not always. For example in very low-Re flows the momentum predictor step can be severely detrimental to the convergence. For interFoam I found that the momentum predictor step did not improve the convergence behaviour and is a bit complicated to include so I removed it for simplicity. I have reinstated it for the 1.2 release just so people can find out for themselves if it is helpful or not.

2) No that formulation of the momentum equation sources is not consistent with the pressure-equation and momentum corrector.

liu July 2, 2005 14:45

Is solve(UEqn == -fvc::grad(pd
Is solve(UEqn == -fvc::grad(pd) - fvc::grad(rho)*gh)? Here gh = g & mesh.C().
I forgot to change the total pressure to dynamic pressure.

henry July 2, 2005 18:27

That is still inconsistent wit
That is still inconsistent with the pressure-equation and momentum corrector, take a look at pEqn.H.

henry July 2, 2005 18:30

I ran the dam-break case with
I ran the dam-break case with and without a momentum predictor and found that with the predictor the pressure solution is slightly faster but it does not offset the cost of the momentum solution and overall it ran ~5% slower.

liu July 2, 2005 19:03

Ok, I derived the equation wit
Ok, I derived the equation with pd again and find it seems to be solve(UEqn == -fvc::grad(pd)).
The gravity is totally absorbed into the pressure term and density difference only take effect in the pEqn.

henry July 2, 2005 19:59

That is not correct.
That is not correct.

liu July 2, 2005 20:08

Well, what is correct one?
Well, what is correct one?

henry July 2, 2005 20:15

I have implemented it in the 1
I have implemented it in the 1.2 version of interFoam which will be released soon but due to other improvements it is not compatible with 1.1 so there is no point me posting it here. I could write you a momentum predictor for the 1.1 version of interFoam but because it does not improve the performance of the code in any way I don't think it's a good use of my time. However, if this is very importantto you, enough for you to purchase a support contract I would do this work as part of that contract.

li July 2, 2005 23:02

I think it that "- fvc::grad(r
I think it that "- fvc::grad(rho)*gh" should move into UEqn.

henry July 3, 2005 06:56

I disagree.
I disagree.

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