CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   FLUENT (https://www.cfd-online.com/Forums/fluent/)
-   -   Pressure interpolation between cells (https://www.cfd-online.com/Forums/fluent/37813-pressure-interpolation-between-cells.html)

Steve Moore September 6, 2005 21:37

Pressure interpolation between cells
 
Hi

How does fluent interpolate the face values of pressure from the values stored at the cell centers? The reference in the manual is to a paper by Rhie and Chow that uses a 'pressure weighted method', using 'momentum equation coefficients'... although no further explanation is given. I've read that paper myself but can't see how or where in the paper you would find anything useful.

zxaar September 6, 2005 21:44

Re: Pressure interpolation between cells
 
fluent uses a method in which we solve the pressure correction or poisson equation for pressure correction. To constuct this pressure correction equation you need to interpolate the pressure gradient, not the value of pressure, this in fluent is done as arithmatic average, that is 0.5 * (val_1 + val_0)

the same average value of phase is used for gradient calculation where it needs valeu of pressure at face, that is p_face = 0.5 * (p_0 + p_1)

these gradients are unlimited gradients, and by using this you can calculate the limited gradients based on schemes of barth and jesperson (see the reference fluent gives to their paper).

Steve Moore September 6, 2005 22:06

Re: Pressure interpolation between cells
 
In the discretized momentum equation, isn't the pressure term the summation of pressure (multiplied by the face area) values? Where is the pressure gradient term? Also what does the poisson equation look like?

Steve

zxaar September 6, 2005 22:07

Re: Pressure interpolation between cells
 
and about rhie -chow funda, its like this:

we have at each cell descretised equation in this form, ap * v_p = sum (al * v_l) - grad(p)

sum is sum for all the faces of the cell.

now this means we have

v_p = ( sum(al * v_l ) ) / ap - grad(p) / ap

now the continuity says that sum(v_face . area) = 0,

so we get

sum ( ( (sum(al * v_l) / ap - grad(p)/ ap )|face . area ) = 0

this gives us:

sum( grad(p)/ap . area) |face = sum ( sum(al * v_l) / ap . area )

as our poisson equation, you can solve for it and get the new pressure and use it

or

you can further construct :

p_dash = press correction

sum( grad(p_dash) / ap .area )| face = sum ( sum(al * v_l) / ap . area ) - sum( grad(p)/ap . area) |face ,

and fluent uses this, grad (p) is by previous iteration


zxaar September 6, 2005 22:10

Re: Pressure interpolation between cells
 
and yes, the grad(p) is the gradient used as such, but the term with grad(p_dash) is descretised as they mention in udf manual you asked for cross diffusion terms

Steve Moore September 6, 2005 22:30

Re: Pressure interpolation between cells
 
Thanks for that... I think I've almost got it. What I still don't get though is with the discretization that is explained in the Fluent manual, the pressure term is a summation over the faces of the cell. Do they not actually do this? Is it that you use the divergence theorem on the pressure term to get it to a grad(p)? ... In which case shouldn't it be:

ap * v_p = sum (al * v_l) - grad(p)V

Steve

zxaar September 6, 2005 22:45

Re: Pressure interpolation between cells
 
yes it is correct , i omitted V so that i can keep the expression simle as possible to give you the idea. when it is solved it is in the form as u have written

Steve Moore September 6, 2005 23:42

Re: Pressure interpolation between cells
 
so what is the relation between pressure values stored at the cell center and the cell pressure gradient?

Steve Moore September 6, 2005 23:52

Re: Pressure interpolation between cells
 
Also... returning to one of your previous replies. You said:

v_p = ( sum(al * v_l ) ) / ap - grad(p) / ap

now the continuity says that sum(v_face . area) = 0,

so we get

sum ( ( (sum(al * v_l) / ap - grad(p)/ ap )|face . area ) = 0

If you're considering a given cell 'p' and if (say) your using a first order upwind scheme, then v_face may not necessarily be equal to v_p right? It could be equal to v_l (meaning the velocity in the center of one of the neighbouring cells) depending on the direction of the flow... Is that correct? and if so is that substitution OK?

Something else I've been wondering is how do you work out the 'upwind' direction? Is it basically taking the dot product of the area vector (of the face concerned) with the two velocity vectors on the cells that share that face and saying that the negative value is the upstream value... or have I got that wrong?

Thanks for all your help by the way... this has been really helpful for me

zxaar September 7, 2005 00:44

Re: Pressure interpolation between cells
 
the term (sum(al * v_l) / ap at face is interpolated by centeral differences , that is for each cell you get H = sum(al * v_l), so you can get H/ap interpolated at the face. in fluent they do not mention how they interpolate, they just mention they use central difference, but starCCM+ uses arithmatic average for H, that 0.5 * (H_1 + H_0),

for ap, it could be airthmatic mean, harmonic mean or volume weighted average.

for graient, (by gauss theorem), p_face = 0.5 * (p_0 + p_1). this is usual practice, and fluent says they use this value. starCCM+, first calculate gradient based on this value, then based on this gradient they get new face value p_face = p_0 + (deltaR) * grad(p)_0

so you can get two face values (from 0 and 1 cell) at face, so you can take p_face = 0.5 *(face value_1 + face_value_0)



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