CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   about the pEqn in PISO loop of icoFoam (

young_Cao May 30, 2012 23:20

about the pEqn in PISO loop of icoFoam
I am a beginner of OF, Recently I got some problems when read the code
of icoFoam, in the solver :
fvm::laplacian(rAU, p) == fvc::div(phi)

this is the pEqn defined in the PISO loop of the icoFoam,but, compared to the pressure equation (3.141) described in jasak's thesis(sorry ,I dont known how to inset a formulation here),I think the r.h.s. should be fvc::div(U),because H(U)/aP is assigned to U by "U = rAU*UEqn.H()",
So now I am confused ,could anybody help me ,thanks!

Chris Lucas June 1, 2012 02:53


fvc::div(U) is correct and it is used in icoFoam. In all incompressible solvers, the equation is divided by density. Therefore, the pressure used in incompressible solvers is actually pressure divided by density.

Best Regards,

young_Cao June 1, 2012 05:28

Hi, Christian
Thanks for your reply, I known the pressure is divided by density.
but what confused me is that the fvc::div(phi) in the r.h.s. of the p equation given in the source codes of icoFoam.C should be div(U) according to the pressure equation in Jasak's thesis,as far as I known,phi is defiend as the scalar product of velcotiy at the cell surface and the surface vector,obviously,U is not equal to phi.So why they use div(phi)?

Chris Lucas June 1, 2012 05:42

Hi, first of all, I have a typo above, fvc::div(U) is wrong and fvc::div(phi) is correct. Sorry about that. Have a look at the eqn 3.141 in jasak's thesis. The second line is exactly what is written in the pEqn of icoFoam. Christian

young_Cao June 1, 2012 22:36

Hi,Chris,thank you very much,
now I get understand,the key problem here is that the fvc::div(phi) isn't to get the divergence of phi, you can not get the divergence of a scalar field, it should be the convection operator, to get the face flux of U, just like div(phi, U) for (UU).

All times are GMT -4. The time now is 08:40.