simpleFoam: switch so second order fvSchemes
Hi all,
I've been working on my case in openfoam 1.7.x for some weeks now, but since the results aren't satisfying (I'm comparing it to fluent Data) I'd like to switch to second order divSchemes. Sadly, despite several tries, I am unable to get a well converging Solution. These are my original fvSchemes which are converging well: ddtSchemes { default steadyState; } gradSchemes { default leastSquares; } divSchemes { default none; div((nuEff*dev(grad(U).T()))) Gauss linear upwind; div(phi,U) Gauss upwind; div(phi,omega) Gauss upwind; div(phi,k) Gauss upwind; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default linear; } fluxRequired { default no; p ; } Now i only changed the divSchemes, nothing else. These are the Residuals and their gradSchemes: http://img31.imageshack.us/img31/435...ausslinear.png First try: Ux, Uy, Uz don't realy converge. divSchemes { default none; div((nuEff*dev(grad(U).T()))) Gauss linear upwind; div(phi,U) Gauss linear; div(phi,omega) Gauss linear; div(phi,k) Gauss linear; } http://img402.imageshack.us/img402/9...eastsquare.png Second try: Here the Calculation exits with an Error. divSchemes { default none; div((nuEff*dev(grad(U).T()))) Gauss linear upwind; div(phi,U) Gauss QUICKV leastSquares; div(phi,omega) Gauss QUICK leastSquares; div(phi,k) Gauss QUICK leastSquares; } http://img266.imageshack.us/img266/5...nearupwind.png Third try: Here the Residuals are relatively high and by using foamToTecplot360 there appears to be a floatingpoint Error. (I guess this means the Results are bad?) divSchemes { default none; div((nuEff*dev(grad(U).T()))) Gauss linear upwind; div(phi,U) Gauss linearUpwindV leastSquares; div(phi,omega) Gauss linearUpwind leastSquares; div(phi,k) Gauss linearUpwind leastSquares; } It would be really helpful if someone could give me a hint how to use second order schemes. I would post back the results if you are interested. If you have any questions please ask! Greetings and thanks for answers! okroud 
Hi,
Maybe i don't get your question right, but in steady state calculations you will not see the error reduction by the order of accuracy of your schemes (because you're doing only more iterations and not refinement). Independent if it is first or second order. 
I quite agree with fisch, but still how can you pass the schemes to a second order?
kind regards 
Quote:
PS: If anyone has any answer about the convergence problem it would still be interesting to know more about why my new gradSchemes don't work. 
Hi,
in steadystate calculations the order of the used schemes are important, too. But you won't see this 2nd order behavior in the graphs you are plotting. If you want to see it you have to compare calculations on different refined meshes... For your problem with the gradScheme: Try the Gauss linear scheme. 
Okay thanks, I'll try Gauss linear now.
I know that I won't see the different results in the convergence, I'm just trying to get a well converging calculation. Before i don't get any, i think it wouldn't make sense to compare the calculations (first/second order on the same Mesh) in detail. I'm a bit confused by your statement about the second order schemes. First you say it is independent if it is first/second order. Then you say I might see differences on refined meshes. Do you mean differences in convergence or the result? Would you agree, that if I'll be able to configure a converging second order calculation (as I tried), there could be some improvement/differences in the Solution of the field variables compared to a first order calculation on the same Mesh? Thanks for taking your time! okroud 
Hi,
The effect of using a first or a second order scheme is not visible from the residuals (your plots). Nevertheless, the results change. Forgive me for making it very simple: In first order schemes you only use two cells in order to determine a derivative. In second order schemes, you use three cells. Therefore, usually second order schemes are more accurately predicting gradients than first order schemes ("better" solution). Let us say that in steady state you just "converge to a less accurate solution" and you cannot see it from the residuals. Just pay attention to one thing: in physics nothing is given for free: you pay the bigger accuracy with lower stability. Higher order schemes are usually more unstable than lower order schemes and are more likely to diverge kind regards 
Thanks rob, for this good overview.
And fish Quote:

convergence Problem
Hi,
how did you make the grid? Did you use a meshgenerator like ICEM or gambit? From my limited experience I can think of two problems that lead to such a convergence behavior. 1. There is somewhere the flux completely blocked. E.g. if you accidently created a wall behind the Inlet and now the stream can't go through. > Check your Grid for this. 2. You might have some translation errors from your Grid generator or declared a part wrong in constant> PolyMesh> boundary E.g. a wallpart is in the boundary field declared as type "patch" and not as type "wall". > Check your boundary file. Kind regards 
First/secord order scheme steady state
From my understanding (please correct me if I am wrong), when you use a first order numerical scheme, you may have a converged solution because you are basically incorporating numerical diffusion. Thus, your "solution" may not be true even though it looks nice. On the other hand, if you try a second order numerical scheme (for example div(phi,U) bounded Gauss linear) and you don't get a converged solution, that means that probably your flow has strong unsteadiness (for example, separation vortex). So what to do in that case?

In my case it finally worked with SFCD Schemes. In my understanding this is a blending between first and second order schemes. So i guess these schemes might be a good choice if you're not sure about how complex or unsteady your flow is. And you were right, there actually was a separation at the end of the turbine blade.
Although I'm not sure if this was the reason for the poor convergence, since it didn't even converge at the beginning, and I don't think that the separation developed that early. 
Yes. A first order can be demonstrated to be equivalent to a second order to which you add a numerical viscosity, which stabilizes it but "smoothens" sharp gradients. In case your second order does not converge you can do several things:
First of all make sure you have a good grid (better quality = less troubles). Avoid as much as possible non conformal grids and, if you can, use hexahedral meshses. plot an isosurface of the the diverging value. look where it diverges. If you see a bad elements in that point or a non conformal surface, this is probably the problem. start with a first order. You stabilize a bit the solution and then you run a second order. Some codes (e.g. CFD++. So I guess SFCD schemes) incorporate a blending function passing from one to another scheme during the solution. In case you have troubles to converge one equation (turbulence, energy equation) start turning it off. After a little convergence put it in again. in case you are still not able to converge, in an unsteady case you can reduce the Delta t. But you increase the solving time in case of steady cases, you can underrelax your solver. It also increases your solving time. Other stabilisation techniques exist but the most times are not necessary. Roby 
All times are GMT 4. The time now is 13:41. 