CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Programming & Development (
-   -   Non-linearity Pressure Equation -- PISO algorithm (

gdeneyer August 23, 2012 04:58

Non-linearity Pressure Equation -- PISO algorithm
Dear Foamers,

I analysed precisely the code of IcoFoam after having read a lot of documentation about the PISO algorithm and the discretization procedure in OpenFOAM. The algorithm is completely known for me but I still have two questions concerning the implementation:

It is said in Mr. Jasak's thesis that the non linearity is treated during the discretization procedure with decomposition of the normal surface vector in two contributions: one orthogonal and another chosen by diverse maners, like Least Square, ... My expectations were that the same procedure was used for the discretization of the laplacian of u and the laplacian of p (the fact that the decomposition is done for dealing the non linearity, not the model of decomposition used)

However, during the PISO loop, there's a nonOrthogonal loop and, as I analyse that, during this loop only two operations are done
PEqn = ... // creating the equation for pressure with the last value of P
solve PEqn // solving for P ==> P has now a new value

I guess that the effect of non linearity kind of disappear while solving again and again the same equation but with the pressure changing. I would like to know why it is so ? Note : only the pressure changes from one nonOrth iteration to another. The fluxes are corrected only after nNonOrth is reached !!

My second question concerns the compressible PISO algorithm. I read the really interesting doc by Mr. Jasak :
but I still don't understand one thing : in this doc it is said that the momentum equation is solved first, then the PISO loop containing pressure equation and (not compulsory if the coupling density-pressure is much less important that coupling velocity-pressure) the energy equation. Then, after this is done, the density is given by : either solving the continuity equation with new velocity field or by using the law of perfect gazes . What I don't understand is that in the PISO code, both are done ! We first explicitely solve the continuity equation with old velocity field to find density, then we do the algorithm as explained and the density is again computed with the law of perfect gazes. My opinion is that the first operation solve(rhoEqn) is not needed as the density from the old timestep already satisfy the continuity equation with the old velocity field !

Thank you in advance for reading all of this :-),


gdeneyer August 23, 2012 05:19

I saw that for my first question the loop was based on a deffered correction approach with the orthogonal part of the laplacian calculated implicitely and the non orthogonal part explicitely. Is this correct ?

Then two others questions :
- does someone have any documentation about the convergence/efficiancy of this method
- why we don't use it when solving the momentum predictor ? are we considering that the non linear effects can be treated only in the pressure equation and will suffice have a velocity non dependant of non-linear effect after velocity correction ?

All times are GMT -4. The time now is 13:05.