|
[Sponsors] |
September 6, 2005, 22:37 |
Pressure interpolation between cells
|
#1 |
Guest
Posts: n/a
|
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. |
|
September 6, 2005, 22:44 |
Re: Pressure interpolation between cells
|
#2 |
Guest
Posts: n/a
|
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). |
|
September 6, 2005, 23:06 |
Re: Pressure interpolation between cells
|
#3 |
Guest
Posts: n/a
|
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 |
|
September 6, 2005, 23:07 |
Re: Pressure interpolation between cells
|
#4 |
Guest
Posts: n/a
|
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 |
|
September 6, 2005, 23:10 |
Re: Pressure interpolation between cells
|
#5 |
Guest
Posts: n/a
|
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
|
|
September 6, 2005, 23:30 |
Re: Pressure interpolation between cells
|
#6 |
Guest
Posts: n/a
|
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 |
|
September 6, 2005, 23:45 |
Re: Pressure interpolation between cells
|
#7 |
Guest
Posts: n/a
|
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
|
|
September 7, 2005, 00:42 |
Re: Pressure interpolation between cells
|
#8 |
Guest
Posts: n/a
|
so what is the relation between pressure values stored at the cell center and the cell pressure gradient?
|
|
September 7, 2005, 00:52 |
Re: Pressure interpolation between cells
|
#9 |
Guest
Posts: n/a
|
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 |
|
September 7, 2005, 01:44 |
Re: Pressure interpolation between cells
|
#10 |
Guest
Posts: n/a
|
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) |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
interpolation for pressure | harry | OpenFOAM Running, Solving & CFD | 35 | November 10, 2017 07:35 |
Pressure Rise Error | emueller | CFX | 0 | May 5, 2009 12:08 |
Neumann pressure BC and velocity field | Antech | Main CFD Forum | 0 | April 25, 2006 03:15 |
physical boundary error!! | kris | Siemens | 2 | August 3, 2005 01:32 |
Hydrostatic pressure in 2-phase flow modeling (CFX4.2) | HB &DS | CFX | 0 | January 9, 2000 14:19 |