k-omega SST flow over a cylinder
I simulated flow over a cylinder with k-omega SST model. But the result was very wrong.
Here is some configuration of my case. D=3.81cm, U=0.19m/s, fluid is set to be water. U and p B.C. is set as usual. B.C. of k is fixedValue=1e-12 at the cylinder. B.C. of nut is fixedValue=nutUSpaldingWallFunciton at the cylinder or fixedValue=1e-12. B.C. of omega is omegaWallFunction. y+is around 1 according to y+=0.172*delta_y/D*Re^0.9. With this configuration, there is vortex shedding and the frequency seems to be Ok, but the pressure at the cylinder is totally wrong, which leads to a wrong drag and lift force. Anybody know what is wrong with my case, please give me some advice. |
Quote:
It's difficult to say, maybe you can put fvScheme file, fvSolution file and your boundaries conditions online. |
Hi Anselme,
the main boundaries are as below: omega boundary: Code:
/*--------------------------------*- C++ -*----------------------------------*\ Code:
/*--------------------------------*- C++ -*----------------------------------*\ Code:
/*--------------------------------*- C++ -*----------------------------------*\ |
The fvscheme and fvsolution file are :
Code:
/*--------------------------------*- C++ -*----------------------------------*\ Code:
/*--------------------------------*- C++ -*----------------------------------*\ |
Does anybody have some ideas?
|
1) you can try to set 1 or 2 non orthogonal correction (nNonOrthogonalCorrectors ) depending of your mesh.
2) Is it normal that your pcorr solver has only a tolerance of 0.02 ?! 3) Your pressure relaxation number looks a bit low for an unsteady simulation. Ideally it has to be close to 1 to really catch the unsteadiness. 0.8 would be much better I think. 4) Where did you get your k and omega value for the inlet ? Those two values are really important to predict the boundary layer separation. 5) use the "yPlusRAS -latestTime" to really compute the yplus of your case ... |
1 Attachment(s)
hi Heckmann,
I modified the files according to your suggestion. But It seemed to have little influence on the result. I tried two cases of which the yplus is 1.1 and 0.8 computed by the utility. Something interesting is that the pressure near the cylinder seems to be OK if you ignore the sudden change of them. It suddenly change to a very high or very low value. it looked like this: |
how is your mesh ? Can you give a screenshot ?
Also, you can run a "checkMesh" utility and give the report |
1 Attachment(s)
I checked mesh, it showed the mesh is all OK.
here is the report: Code:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // |
From the picture on post 7, it looks like you have a divergence...
1) Personally I would not set k = 0 at the inlet since it doesn't have any physical meaning. You can use the tool http://www.cfd-online.com/Tools/turbulence.php to estimate it. Roughly, you can set it as equal to 1e-6. 2) I'm not familiar with pimpleFoam (I work more on rhoPimpleFoam) but I think that you can set the inlet boundary of nut as "calculated" or "zeroGradient" since nut is derived from k and omega (If I remember well my classics). 3) maybe you have a problem with the time step. What is your maximum Courant Number (given at each iteration) ? It should be lower than 0.2 to avoid divergence or some sporadic crazy behavior. You can also try to use a second order scheme for ddt or maybe a cranknicholson. 4) try to change the turbulent div scheme to linearUpwind. It's often more stable. |
Hi Heckmann,
Thanks very much for your patience and kindness. Following your suggestions, I finally succeed to get a reasonable result. I changed the maxCo to 0.2 the pressure relaxation number to 0.8, and the time scheme to CrankNicolson 0.5. I am not good at CFD. For many parameters in the case files, sometimes I don't know how to set them -- I don't know what value is appropriate. I am trying to learn. Could you give me some advise? |
CFD is most of the time a matter of experience. I've never found any book or class able to really prepare a student to deal with "advanced" cfd. The only thing you have to do is to keep working and trying :D
In French we say: "c'est en forgeant qu'on devient forgeron", that you could roughly translate to "practice makes perfect". |
Quote:
I use OpenFOAM since two month and I agree with you, it is not always easy .. I can only advise you to learn about CFD online and trust people who have written hundreds of posts..;) I am particularly interested in your blockMeshDict your cylinder. I would be very grateful if you can give me your file. Thank you, Anselme |
1 Attachment(s)
Hi, Bonnet
My blockmeshDict is copied from the tutorial case in potentialFoam. You can download my file from the attachment, or go to the tutorial to find the original file. |
1 Attachment(s)
Thank you, I didn't see that ! But It's only a semi-cylinder. So I duplicated it but It seems to have a problem with my mesh regarding the connections in the symmetry plane. If you look on the picture, there is abnormal features in the symmetry plane
Code:
/*--------------------------------*- C++ -*----------------------------------*\ |
1 Attachment(s)
Use mirrorMesh utility to create a mirror mesh. Set control parameters in mirrorMeshDict in system directory.
|
thank you!
I did what you said, I put the file "mirrorMeshDict" in the system directory, but before and after the computation, I can't generate the mesh, I still have a half-cylinder .. Maybe I need to put something in the controlDict or somewhere? |
which version do you use? if of1.6ext, please check the 0 directory.
|
k-w-SST steady-2D
Dear all,
I have been following this thread because I am starting to use OpenFOAM and trying to simulate the case of a circular cylinder, starting from a simulation in steady and 2D conditions. Not extent of some trouble I have finnally built a case which runs properly, but I get values of drag around 0.012 only! My fvSchemes and fvSolution scripts are below these lines. Any thoughts will be more than welcome :) Code:
/*--------------------------------*- C++ -*----------------------------------*\ Code:
/*--------------------------------*- C++ -*----------------------------------*\ |
Did you set the good value for the force function (in controldict) ? I mean, does your reference length and all other arguments are ok ?
|
All times are GMT -4. The time now is 02:52. |