I need explanations about fixedFluxPressure
Hello!
I had a look at the fixedFluxPressure boundary condition and I am not quite sure to well understand what this BC does. I guess I have to use this BC if I want to evaluate the pressure according to a velocity input. Am I wrong ? Furthermore, in the code source, one can read: Code:
gradient() = (phip  (patch().Sf() & Up))/patch().magSf()/rAp; All enlightments are welcome! Regards, Cyp 
buoyantPressure vs. fixedFluxPressure
I realize this is an old thread, but it is still very relevant.
I was having terrible problems trying to get buoyantBoussinesqSimpleFoam to converge. I changed the p_rgh BC's from buoyantPressure to fixedFluxPressure and the model started to converge. Anybody? 
Same question here. What is the difference between buoyantPressure and fixedFLuxPressure boundary conditions?

OpenFAOM 2.3.0 doesn't have buoyantPressure BC
Hi
OpenFAOM version 2.3.0 doesn't have buoyantPressure libraries. Am I right? what is the difference between buoyantPressure and fixedFluxPressure? why fixedFluxPressure converge better? is it the only difference between them? Please help:( 
OpenFOAM 2.2.2 has both boundary conditions. In newer Version, buoyantPressure boundary was dismissed. For clarification have a look into the code or into Doxygen.
From buoyantPressureFvPatchScalarField we learn that: This boundary condition sets the pressure gradient appropriately for buoyant flow. If the variable name is one of pd, p_rgh or ph_rgh, we assume that the pressure variable is http://latex.codecogs.com/gif.latex?...%5Ccdot%20h%29 and the gradient set using: http://latex.codecogs.com/gif.latex?...%5Ccdot%20h%29 Otherwise we assume that it is the static pressure, and the gradient calculated using: http://latex.codecogs.com/gif.latex?...%5Ccdot%20n%29 From fixedFluxPressureFvPatchScalarField we see that: This boundary condition adjusts the pressure gradient such that the flux on the boundary is that specified by the velocity boundary condition. The predicted flux to be compensated by the pressure gradient is evaluated as http://latex.codecogs.com/gif.latex?...i_%7BH/A%7D%29, both of which are lookedup from the database, as is the pressure diffusivity used to calculate the gradient using: http://latex.codecogs.com/gif.latex?...Sf%7C%20D_p%7D 
Some additional remarks:
The fixedFluxPressure boundary is known do have a better convergence. This is in my opinion due to the more pressure related calculation of the gradient: http://latex.codecogs.com/gif.latex?...Sf%7C%20D_p%7D phi and phiHbyA (predicted flux field) are directly linked to pressure equation. On a wall, the flux difference tends to zero and so the boundary condition turns to zeroGradient. The buoyanPressure boundary is more the physical method to describe the pressure gradient with Archimedes' principle. I hope my explanation is understandable and correct. Cheers Fabian 
I would like to comment out a bit, why does OpenFOAM use the expression given by santiagomarquezd (gracias por el análisis del código fuente) for the pressure surface normal gradient in the boundaries.
First of all we need to write down the momentum equation discretized using the RhieChow interpolation method. This reads: Where the f subscript means interpolate to the face, is the variable p_rgh whose value is , and the vector u is the velocity. Now multiply the equation by the face surface vector where the vector n is the surface normal: Thus the following equation for the pressure surface gradient can be obtained: Hope this is useful for you foamers 
Thanks for the explanation!!

value uniform 0;
Dear all, thank you for the above discussion
There is one thing I don't understand fully. In the damBreak example for interFoam (say of OF 4.0) the b.c. for p_rgh is given as... leftWall { type fixedFluxPressure; value uniform 0; } so the question is, what does "value uniform 0;" stand for? There is one constructor in fixedFluxPressureFvPatchScalarField.C which has 3 arguments: Foam::fixedFluxPressureFvPatchScalarField::fixedFl uxPressureFvPatchScalarField ( const fvPatch& p, const DimensionedField<scalar, volMesh>& iF, const dictionary& dict ) ... and in that function body, there is if (dict.found("value") && dict.found("gradient")) But in interFoam, this constructor is not used, since it is the constructor with two arguments that is used (actually the first constructor), c.f. in pEqn.H setSnGrad<fixedFluxPressureFvPatchScalarField> ( p_rgh.boundaryField(), ( phiHbyA.boundaryField()  fvOptions.relative(mesh.Sf().boundaryField() & U.boundaryField()) )/(mesh.magSf().boundaryField()*rAUf.boundaryField() ) ); So am I understanding this correctly: When using interFoam, then the "value uniform 0;" is actually not used? Any comment would be helpful J. 
Hi Jon,
I had a similar question about flowRateInletVelocity which requires an input value that doesn't appear to do anything. As explained by Roman in the below thread some derived boundary conditions necessarily inherit a placeholder value like this one because of their basic structure. http://www.cfdonline.com/Forums/ope...tvelocity.html I think the value uniform 0; you asked about is like this and could be assigned any value you like without affecting your simulation. 
So the bottom line, The difference between this bc and zeroGradient is in term of the convergence (HOW MANY ITER TO SOLVE THE PRESSURE EQN ) not the accuracy or whether the solver will converge or not.

All times are GMT 4. The time now is 23:12. 