# Pressure equation for compressible solver

 Register Blogs Members List Search Today's Posts Mark Forums Read

 September 9, 2015, 08:06 Pressure equation for compressible solver #1 Member   Akshay Kumar Join Date: Aug 2010 Location: India Posts: 76 Rep Power: 7 Hello! I was trying to understand how the pressure equation(how 'p' is calculated) is formulated for a compressible flow(pressure based solver). I looked up openfoam's simpleFoam & rhoSimpleFoam to understand the differences but things are still unclear. rhoSimpleFoam fvScalarMatrix pEqn ( fvm::div(phid, p) - fvm::laplacian(rho*rAU, p) == fvOptions(psi, p, rho.name()) ); simpleFoam fvScalarMatrix pEqn ( fvm::laplacian(rAU, p) == fvc::div(phiHbyA) ); Could someone help me with these equations? Another thing I noticed in the rhoSimpleFoam solver is that they use setReference for pressure....I thought this referencing is needed only for incompressible flows that do not have any pressure boundaries so that the pressure values are not floating. pEqn.setReference(pRefCell, pRefValue); So why is this used in the compressible solver? Regards Akshay

 September 12, 2015, 06:29 Shoutout to bruno!! #2 Member   Akshay Kumar Join Date: Aug 2010 Location: India Posts: 76 Rep Power: 7 Hey Bruno!!! As usual...I'm relying on you to point me in the right direction

September 12, 2015, 15:55
#3
Super Moderator

Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,930
Blog Entries: 34
Rep Power: 92
Quote:
 Originally Posted by Akshay Hey Bruno!!! As usual...I'm relying on you to point me in the right direction
OK... you should perhaps re-read again this post: How to give enough info to get help - you'll understand why in my next answer...

Quote:
 Originally Posted by Akshay Could someone help me with these equations?
Your question is not clear. What exactly don't you understand?

Quote:
 Originally Posted by Akshay pEqn.setReference(pRefCell, pRefValue); So why is this used in the compressible solver?
The subsection "4.5.3.1 Pressure referencing" in the OpenFOAM User Guide addresses why this reference pressure is needed, namely because it's how relative pressure has to be dealt with. This means that the solver rhoSimpleFoam can also operate with relative pressure, even if it's compressible.
Beyond this, this pressure referencing is needed when no boundary condition defines a pressure value, e.g. if all BCs are zero gradient, then the equation would be undefined, hence the need for a reference pressure value in a specific point.

 September 18, 2015, 09:24 #4 Member   Akshay Kumar Join Date: Aug 2010 Location: India Posts: 76 Rep Power: 7 1. I basically wanted to know the difference between the pressure equations solved for an incompressible flow and pressure equation for a compressible flow. 2. Regarding reference pressure locations - I think some of the commercial codes use this only for incompressible solvers. Right? If yes, then why is that?

September 19, 2015, 12:07
#5
Super Moderator

Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,930
Blog Entries: 34
Rep Power: 92
Greetings Akshay,

Quote:
 Originally Posted by Akshay 1. I basically wanted to know the difference between the pressure equations solved for an incompressible flow and pressure equation for a compressible flow.
I've been using OpenFOAM for so long that it's affecting me. Essentially, since OpenFOAM is really picky about every single detail, I'm getting picky about every single detail as well
Anyway, the reason why I don't understand you question is as follows...

rhoSimpleFoam
Code:
```fvScalarMatrix pEqn
(
fvm::div(phid, p)
- fvm::laplacian(rho*rAU, p)  == fvOptions(psi, p, rho.name())
);```
"fvOptions" is used for source terms. If you ignore this, you have this equation:
Code:
```fvScalarMatrix pEqn
(
fvm::div(phid, p)
- fvm::laplacian(rho*rAU, p)  == 0
);```
which is the same as:
Code:
```fvScalarMatrix pEqn
(
fvm::laplacian(rho*rAU, p) == fvm::div(phid, p)
);```
It's pretty much the same structure as in simpleFoam:
Code:
```fvScalarMatrix pEqn
(
fvm::laplacian(rAU, p) == fvc::div(phiHbyA)
);```
with the exception that "rho" is not present, because it's constant and cancels out.

Quote:
 Originally Posted by Akshay 2. Regarding reference pressure locations - I think some of the commercial codes use this only for incompressible solvers. Right? If yes, then why is that?
I believe I already answered that question. But here's another thread on this topic: Reference pressure in OpenFOAM

The missing detail is probably what you're not asking: Why is the pressure relative to a reference value and not absolute? A few answers:
Best regards,
Bruno

 September 21, 2015, 03:03 #6 Member   Akshay Kumar Join Date: Aug 2010 Location: India Posts: 76 Rep Power: 7 Thanks Bruno and I apologize for not being able to hit the nail on the head with regards to my questions. Things are clear now but I have a follow up question .... The rhoSimpleFoam solver we are talking about here is a pressure based solver. Yes it can have a reference pressure location(referencing). If we talk about a density based solver (rhoCentralFoam) then there is no pressure equation(pressure obtained using equation of state) to solve and we wouldn't need a reference pressure location for such a solver. Am I making sense? Reg Akshay

September 21, 2015, 12:21
#7
Super Moderator

Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,930
Blog Entries: 34
Rep Power: 92
Quote:
 Originally Posted by Akshay The rhoSimpleFoam solver we are talking about here is a pressure based solver. Yes it can have a reference pressure location(referencing). If we talk about a density based solver (rhoCentralFoam) then there is no pressure equation(pressure obtained using equation of state) to solve and we wouldn't need a reference pressure location for such a solver. Am I making sense?
Quick answer: It does make sense what you're saying and seems to be correct. Nonetheless, do keep in mind that it can depend on the implementation; I say this because one possible implementation (which probably doesn't make much sense for compressible flow) would be to make the density "rho" relative to a reference

 September 28, 2015, 04:47 #8 Member   Akshay Kumar Join Date: Aug 2010 Location: India Posts: 76 Rep Power: 7 Hmm...to continue on this topic.... Interestingly, it looks like this referencing is not used for rhoPimpleFoam pressure equation but it is used for rhoSimpleFoam. What does steady or transient have to do with referencing the pressure value??