CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   pressure driven flow in interFoam (

deniggo May 9, 2011 13:24

pressure driven flow in interFoam
I'm working on open channel flow using interFoam. A case with fixedValue-BC for U at the inlet and p_rgh fixedValue-BC at outlet is working properly (zeroGradient BC at outlet for U and inlet for p_rgh).

But is it possible to implement a pressure drop by specifying inlet AND outlet pressure fixedValue-BC (channel slope), without a fixedValue-BC for U? Thus, U should be developed corresponding to the pressure gradient.

I tried zeroGradient and pressureInletOutletVelocity for U-inlet and outlet, but the runs failed. Which BC for U would be appropriate for thise case?

Thanks for your help,


santiagomarquezd May 9, 2011 15:25

What about totalPressure for p_rgh and zeroGradient for U and alpha1 at inlet?


deniggo May 11, 2011 08:40

Hi, thanks for your answer,
I tried also totalPressure for inlet and outlet of p_rgh with no success. totalPressure is also set for the top of the channel = atmosphere.
For alpha1, I forgot to mention, I use groovyBC at inlet for time varying waterlevel.
Maybe that's the problem?


bmandt June 24, 2011 11:11


I have the same problem trying to calc a flooding inside a ship, only with pressure given at the inlet side.

In a personal discussion at another forum, I received this answer (the discussion was in german, I try to translate it):

Hydrostatic pressure boundary condition calculated as
pRefValue + rho*g.(x - pRefPoint)
where rho is provided and assumed uniform.
for the inlet pressure: "uniformDensityHydrostaticPressure"
the velocity at the inlet: "pressureInletUniformVelocity"
water at the inlet: alpha/gamma = fixedValue; value uniform 1;
at the outlet "zeroGradient"for using Piso

unfortunately the author mentioned piso, not interfoam, but it may be, and I hope this, this information helps you. I was not able to set up an interfoam case with this information, the reason may be, that I am a very beginner at openfoam and cfd...

I hope you will give feedback.

Best regards


bongbongxanh June 25, 2011 08:13

i suggest convert the pressure drop at the boundary condition into a pressure source, i.e. a constant gradient of pressure in the desired flow direction and add it to momentum equation in the solver. the velocity at the boundary can be set at zeroGradient or inletOutlet, the velocity itselft will then be driven by the pressure source and develop over the length of the channel. :)
Hope this idea can help.

nimasam June 25, 2011 15:42

look into channelFoam, you can download channelInterFoam here, but i cant promise its totally true ;)

Andrea_85 October 11, 2011 06:45

Hi Nico,
Have you found a solution? Have you tried channelFoam? I need to specify a pressure gradient between the inlet and the outlet of my domain and i would like that the flow was driven by this gradient.



nimasam October 11, 2011 16:59

use a fan boundary condition between outlet and inlet so the pressure gradient* channel length will be the value of pressure jump

Andrea_85 October 12, 2011 03:52

Hi nima and thanks for reply.
I never used fan BC, can you be a bit more specific about how to use them for my case? or can you direct me to some reference or tutorial?

thanks again


deniggo October 13, 2011 04:51

Hi nimasam,
thanks for your help.
I tried to use fan BC. But I use groovyBC for defining the water level at the inlet. Therefore, cyclic fan BC does not work, because "inout" (cyclic patch of inlet & outlet) can not be defined by groovyBC?!


nimasam October 13, 2011 05:01

use the funkySetFields to initiate the level of the water at time zero!

deniggo October 13, 2011 06:00

ok! defining water level at time 0 by using setFields works. water level stays constant through the simulation.
thank you very much!

Andrea_85 October 18, 2011 07:28

Hi again,
I understand how to define a "inout" cyclic patch between inlet and outlet. Now my question is which is the correct boundary condition for alpha1 in "inout"?
i have

type cyclic;
value uniform (0 0 0);

type fan;
patchType cyclic;
f List<scalar> 1(1000);
value uniform 0;

inout ??

Can i use the inletOutlet patch? I would like to have fixedValue at the inlet (uniform 1) and something like zeroGradient or inletOutlet at the outlet.



nimasam October 18, 2011 08:07

no you can't , when you use the class cyclic, you can only use cyclic boundary condition or its sub derived class like fan
but the main question is that how ur alpha treats? is it cyclic or not? if it is not cyclic why you are going to use cyclic BC for ur simulation?

Andrea_85 October 18, 2011 08:37

Hi nima,
honestly i'm trying different types of boundary condition to see what is the best choice to reproduce an experiment. In the experiment the flow is driven by a pressure difference between inlet and outlet and I'm loking for something similar in my simulation (at least i would like to not specify the pressure at outlet, because i'm interesting in what happens at the breakthrough and i think fixed pressure BC affects the results). Probably you are right and my alpha1 is not cyclic because i want only phase1 which enters at the inlet and not a mix of the two (which is what flows out at the outlet). the problem remains!
if you have other ideas, of course are welcome.



Mojtaba.a September 13, 2013 04:57

This maybe an old thread, but did you found any solution for this?

nimasam September 13, 2013 08:51


Originally Posted by Mojtaba.a (Post 451481)
This maybe an old thread, but did you found any solution for this?

solution for what?

Mojtaba.a September 13, 2013 12:36


Originally Posted by nimasam (Post 451529)
solution for what?

To solve for pressure driven flow using interFoam.
I mean the boundary conditions.

I don't know why not typical boundaries converge for this case.

P value must be greater that a specific value (i.e 20000 Pa) to be able to drive the flow. But the one I want it to be is about 1000 Pa. With this lower value I can not converge the solution.

nimasam September 13, 2013 13:21

i have no idea, you may want to setup a simple test case and show this, which may help other OpenFOAM user help you to find out how to solve this problem

Saideep November 13, 2015 08:16

Channel flow bc's at inlet
Hi guys;

I would like to revoke this old thread.
For a 1 phase flow, pressure gradient between inlet and outlet works perfectly whereas this is not the case for a 2phase flow in interFoam. Can anyone shed some light over that.

My case:
it is simple channel flow with one phase being invaded by an other phase. My ideal bc's would be is to specify inlet and outlet bcs for pressure and let the velocity develop over the channels flow physically.

I tried this but it doesn't work whereas when i try to invade it by specifying injection velocity at inlet and 0 pressure at outlet i have a flow.

Could anyone who already solved your problem for a similar case help me out with suitable bcs,


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