CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   Gravity source term in PisoFoam (

DanM November 28, 2012 15:56

Gravity source term in PisoFoam
1 Attachment(s)

I have a question regarding adding a source term to the momentum equation in the piso solver. I would like to model a channel flow taking into account the effect of gravity. To do so I have adjusted the solver as follows:

fvVectorMatrix UEqn
+ fvm::div(phi, U)
+ turbulence->divDevReff(U)
- gravity

I have specified a non uniform pressure outlet condition to the channel that takes into account the effect of gravity. When solving the problem I attain a pressure distribution that seem reasonable (hydrostatic pressure distribution). However, I experience oscillations of the vertical velocity component (U1). This is seen in the attached picture that shows the velocity distribution across the channel height. The picture corresponds to the beginning of the simulation where the horizontal velocity is still zero and the vertical velocity should also be equal to zero across the height. It seems like the boundaries are causing some issues. I have used standard no slip conditions for U and zeroGradient for p so I am not sure what is causing the error. Is there something else I need to consider when trying to include gravity in a pisoFoam flow?

I would greatly appreciate any help.

Thank you very much,


Gloq December 3, 2012 09:44

Hello Dan,

i'm trying to solve a channel case like yours but with reactingFOAM.

I obtained a pressure distribution along height accounting for gravity effects like you. But close to outlet BC, I got a big recirculation zone with unphysical magnitudes for velocity and low pressure.

You said you "specified a non uniform pressure outlet condition to the channel".
What did you do actually ?
You created a boundary condition for p that accounts for gravity effects ?
Do you think I could get better results which such a trick ?

Thanks in advance for your help.


DanM December 3, 2012 09:52

Hello Guillaume,

yes, I set the outlet boundary conditions equal to the hydrostatic pressure distribution using groovyBC. I have figured out by now why the problems at the boundaries (top and bottom of the channel) arises. I had prescribed zeroGradient for the pressure but this doesn't take into account the hydrostatic pressure. I have switched to a fixedGradient condition but I still am experiencing difficulties attaining a physical solution. I guess a work around would be the approach taken by the buoyancy solvers of OpenFoam, which solve for p_rgh rather than p. This makes the definition of the boundary conditions significantly easier.



Gloq December 4, 2012 13:17


thanks a lot for your (very quick !) answer.

I will try to see if it is easy or not to replace/complete p equation of reactingFoam solver with p_rgh equation, being inspired by buoyancy or two-phase flow solvers.


redhoax May 24, 2013 11:30

I am experiencing this exact same issue using reactingFoam in an open domain - a resirculation zone at the outlet. I have created a pressure gradient at the outlet with the use of groovyBC, still I obtain unreasonable velocity magnitudes. did you solve your problem? if so, i am very keen to know how :)


All times are GMT -4. The time now is 16:14.