Fluent Integration Numerics
Dear All,
I try to understand the integration numerics of Fluent and have two problems right now: I) Theory Guide 20.3.3 explains the evaluation of gradients at the cell centers. In NavierStokes integration procedures, gradients of different values are needed on the cell faces. Does it mean, you will choose the way Fluent calculates the gradients (such as velocity) in the cell centers at "Solution methods > gradient" and then use a certain method specified by let's say "Spatial Discretization > Momentum" methods to interpolate these cell center values to the faces? II) I am stuck at another point, maybe someome can help me: Ferziger and Peric explain the integration by using different levels: a) Cell face integration is approximated by a certain summation over points that are related to that surface. b) The values at these points are approximated by an evaluation of relevant cell centered values. If I unterstand this correctly, point a) is explained in "Theory Guide > 20.2", which means, that Fluent's surface integration is always the same: A surface integral is approximated by the sum of all cell face values times the corresponding surface. Point b) is explained in "Theory Guide > 20.3.1", so how to obtain the face values from the cell center values. Ok, but: Ferziger and Peric say, that Fluent's way of calculating a) is always second order accurate. If we use a firstorder scheme for b) the resulting scheme will be 1st order accurate, ok. But why would we use a scheme for b) that has a higher accuracy than 2nd. ? Since a) is only 2nd order accurate the resulting scheme can never be better, independent of what we use for b). 
I) In Fluent you can choose how cell centered gradients are calculated (LeastSquares, GreenGauss cell based, GreenGauss node based). These gradients are used with a deferred correction approach (evaluated explicitly, put into the source terms under adeguate form and updated with the iterations) to improve over the 1st order evaluation of facecentered values.
These face centered values are the convective and diffusive flux. However, you can't choose how to improve the discretization of the diffusive flux (which is always 2nd order central), only of the convective flux (for which you have several available schemes). II) Using your terminology, no scheme for (b) which has order higher than 2 is available in Fluent; so there are no contradictions. 
Hi, thank you for your explanation!!!
I) I don't know "deferred correction approach", but I think I will find something in google. The "Momentum" method is just for the convective part and I don't have any choice for the diffusive part. Is it that, what you are saying? II) I thought (just from the name  without reading the details), that "3rd order MUSCL" is indeed 3rd order. Wouldn't that be the type (b) scheme, I read about? 
I) Yes
II) The original MUSCL scheme is second order accurate: B. Van Leer: Toward the Ultimate Conservative Difference Scheme. IV. A Second Order Sequel to Godunov’s Method, Journal of Computational Physics, 1979 I don't see how this could become 3rd order for an unstructured code. Indeed no details are provided in the Fluent manual. However, even if it was, there is no way to check it in Fluent because, as you said, all the other spatial approximations are only 2nd order. 
Thank you very much, maestro!
I really appreciate your help. Sometimes the Fluent manual doesn't really help to get these details... 
Again in this old thread, but with similar scope:
1) The face values are needed for the a) convection terms and b) the GreenGauss gradient evaluation. Now, why does Fluent use different ways for calculation? 2) Also: The GreenGauss nodebased gradient evaluation averages nodal values to compute the face values. Thus, nodal values are known in this case. They could be used to enhance the computation of the surface integrals (such as the convection terms). Right now the surface integrals are just approximated by face values times area. This could be done with higher accuarcy by using the nodal values. Any ideas? 
Dear Rodriguez:
1) There are two reasons for this difference (in my opinion). The first one is that the concept of the gradient is generally different from that of the convection term, hence upwind discretizations would not be well suited for the gradient. However, even considering centered discretizations (like for the central scheme in fluent), higher order terms would involve the gradient itself leading to an implicit gradient relation. While there is no reason to not consider it (Code_Saturne actually uses it), it is impractical for a solver like Fluent (especially because only first order accuracy is required for the gradient in order to achieve the second order accuracy for the face value). 2) Again, you have two answers here (still in my opinion). The first one is that, again, all the remaining terms are still discretized with second order accuracy and a better integration of the fluxes alone is not giving you any better answer (also, those node values are still no better than second order accuracy... didn't do the math, but there are chances that you can't overcome that accuracy barrier). The second is that all these higher order terms are treated in Fluent by the so called deferredcorrection approach. So, not only you have to update them at every inner iteration (at least, in theory, Fluent should), which is more costly, but their actual explicit treatment is not necessarily troublefree. 
Thank you  again  for your response. I will have to think about that!

Dear Paolo,
I tryed to find some more information about the diffusion term discretization. Actually, Fluent manual only says that "centraldifferencing" is used, but not how. As far as I understand it, there are two common ways for the diffusive flux: a) (as explained in the Ferziger/Peric book) The direct connection of the two cell centers does not cross the boundary in its center. To get the derivative at the cell center (face value=), one needs to connect two different points inside each cell. The value at these two points is estimated by cell center value plus some correction via the gradient at the center. b) Using the crossdiffusion approach. Since we need the gradient at the boundary in normal direction, the direct gradient is calculated and then the crossdiffusion term is subtracted. BTW: If it is a), where are the gradients at the cell centers taken from? Are these the ones I chose under "Solution methods > gradient"? 
Independent of my previous post I am wondering this: How does Fluent calculate the convective fluxes at the cell faces? I mean, we need to know "Phi*rho*velocity" at the cell faces and Fluent help only holds forth about the "Phi" but not about the "rho*velocity". Does anyone know this? Does it use the same value as it uses for the continuity equation?

Dear Rodriguez,
as far as concerns the first question, Fluent uses an approach based on implicit evaluation for first neighbor terms plus an explicit nonorthgonal correction (treated by a deferred correction approach). This correction is based on the gradients in the cells sharing a given face, which i guess are computed with the method specified in the Fluent options. For what concerns the mass flux, yes, Fluent (every code as far as i know) has to use a continuity based mass flux (one which satisfy the continuity equation). I don't know exactly how it is computed, but it should be based on a 1/2 average among sharing cells for the face. 
Quote:
Fluent help says, that this (50%weighting) leads to checkerboarding and that some other weighting based on the momentum equation is used... 
All times are GMT 4. The time now is 06:13. 