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)? 
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 lowRe 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 pressureequation and momentum corrector. 
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. 
That is still inconsistent wit
That is still inconsistent with the pressureequation and momentum corrector, take a look at pEqn.H.

I ran the dambreak case with
I ran the dambreak 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.

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. 
That is not correct.
That is not correct.

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

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.

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

I disagree.
I disagree.

All times are GMT 4. The time now is 04:21. 