CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   BuoyantSimpleFoam solver crashes (

prashant24983 October 11, 2008 02:05

Its difficult for me to commen
Its difficult for me to comment on your case. But in the case for buoyantSimpleFoam in the tutorial of OpenFOAM-1.5, you need to change internal pressure field (hotRoom/0/p)

internalField uniform 0;


internalField uniform 100000;

The case should work properly.


prashant24983 October 11, 2008 02:08

From the error output of your
From the error output of your case, I would suggest you to check your k & epsilon. Hopefully, they are not set to zero.

christian October 13, 2008 02:41

Thank you for helping me out.
Thank you for helping me out. The tutorial case worked fine after modifying the pressure field. My own case runs now as well. In the User Guide it says that the type "calculated" has no data to specify. In fact, a value has to be added.

The problem I'm trying to solve involves a room with a number of air inlets and outlets as well as components which generates heat. So it's a problem involving buoyancy. I have a number of questions. I'm grateful for help in any of these questions:

1) In the buoyantSimpleFoam solver one solves for a scalar field called "pd" as wells for "p". Why is this?

2) In the tutorial, the boundaries have a "pd" type called "fixedFluxBuoyantPressure". What is this and where can I read more about this type to understand it?

3) In the tutorial, the boundaries have a "p" type called "calculated". Does this means it is calculated from "pd" and "rho"? But still, a value of this "calculated" type is requested to be input, why?

4) Talking about boundary conditions, I basically have a number of inlet and outlets where I know the volume flow. The remainder is walls. What would be the appropriate boundary conditions? I assume I could set the pressure at one of the outlets to 1 bar.

5) I want to impose a uniform heat flux on some of my boundaries. Is that done by setting a fixed gradient for T according to q = k*A*deltaT? I realise now that a gradient involves a distance, so maybe I'm wrong here?

mkraposhin October 14, 2008 05:12

Hi, Chrisitian, Q1) I haven
Hi, Chrisitian,

Q1) I haven't tried boussinesqBouyantSimpleFoam, but with boussinesq assumptions liquid density depends only on temperature rho=beta*T. bouyantSimpleFoam solver uses equation of state (perfect Gas only today) rho=f(p,T). So, as your liquid is air you can use both solvers

Q2) p=pd+rho*g*h

Q3) fixedFluxBuoyantPressure BC uses knowledge of field rho*g*h to update pressure field properly (thus, if vertical distance between two boundary faces centers c1 and c2 is h, then, p2-p1=(rho2-rho1)*g*(c2-c1)=(rho2-rho1)*g*h

Q4) What boundaries?. For what field? If boundaries for field p, then your answer is right

Q5) if you want to account only for molecular heat transfer, then q=-lambda*gradT, if you want to account for both molecular and advection heat transfer, then you can use formula q=alpha*(Twall-Tliq), where alpha is empirical coefficint. For heat transfer, have a look at patch definition for enthalpy (src/thermophysicalFunctions/basic...)

Q6) About division by zero: set 0.1 for k internal field and 0.01 for epsilon internal field

christian October 14, 2008 06:52

Thank you. Question 4 above
Thank you.

Question 4 above was badly expressed:

I know the volume flow for my 2 inlets and 4 outlets of the ventilated room. I set the velocity for my 2 inlets and 3 of the 4 outlets. For the last outlet I set an absolute pressure of 1 bar.

1) For a velocity inlet I normally use a zero pressure gradient. I have never been using the pd formulation before. What would be the appropriate boundary condition for p and pd for a velocity inlet?

2) p is of type calculated. Still OpenFOAM requests a value to be input. Why is this? I mean, pd is solved for and p is calculated as pd+rho*g*h. Could p be of any other type than calculated?

3) What is an appropriate boundary condition for p and pd at an outlet where I want to set the pressure to 1 bar absolute?

4) What is an appropriate boundary condition for p and pd for walls?

5) I want to impose a constant heat flux at some of my boundaries. I don't wish to consider any heat transfer coefficient, only add a heat flux to the temperature field at the boundary faces. How can this be done?

kati October 17, 2008 15:07

Hi Christian, I'm afraid I
Hi Christian,

I'm afraid I can't help you much further. I've struggled with same problems in a very simple case in 1.4.1, and I found that for flow inlet and outlets only mass flow rate based boundary worked. In 1.4.1 the boundary condition was massFlowRateInletVelocity for U, and for pressure I used fixedFluxBuoyantPressure everywhere, also on inlets and outlets. This BC should be used in boundaries where you would use zeroGradient in non-buoyant cases. I didn't manage to make any sort of fixed pressure boundary work. (Which of course does not mean that they would be impossible :-|).

The 1.4.1 buoyantFoam did not require pd field. New one reads it from a file, and uses that field to set p. p is not explicitly read, it is set by thermo library. Maybe the library wants to have the file p.

One more thing: I also didn't have much success with buoyantSimpleFoam, but buyantFoam worked nicely with mass flow rate BC's. Many buyant cases are inherently transient, so try using the transient solver first.

I hope this helps.


christian October 28, 2008 07:03

I have 2 inlets (for which I s
I have 2 inlets (for which I set the velocity and leave the pressure as a zero gradient) and 4 outlets. I ended up with a successful buoyantSimpleFoam computation using the totalPressure boundary condition for both p and pd. I set the velocity for 3 of the 4 outlets and used totalPressure for the fourth. The other 3 used the fixedFluxBuoyantPressure condition. Right now I'm running with all four outlets set to totalPressure. There seems nufortunaltely to be a convergence problem for the pd equation although the flows going in and out of the domain looks ok. I will try running buoyantFoam.

All times are GMT -4. The time now is 00:10.