CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (https://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   Non-linearity Pressure Equation -- PISO algorithm (https://www.cfd-online.com/Forums/openfoam-programming-development/106248-non-linearity-pressure-equation-piso-algorithm.html)

 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 : http://www.scribd.com/doc/27927305/N...outer_page_161
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 !