# Flow past a 2D cylinder - High Re (1E+05) - Cd too high

 Register Blogs Members List Search Today's Posts Mark Forums Read

 April 7, 2016, 10:42 Flow past a 2D cylinder - High Re (1E+05) - Cd too high #1 New Member   Tommaso Pascon Join Date: Mar 2016 Posts: 18 Rep Power: 10 Hi guys, I am trying to validate Openfoam simulating a 2D flow past a cylinder at high Reynolds Number (Re=1e05 -07), using komega-sst. At the Reynolds number 1E+05 i got pretty good results in term of Cd =1,23 instead of 1,2 and St = 0,23 instead of 0,2. So now i wanted to run the same case at Re = 5E+05. So I modified the mesh in order to get an accurate y+ value (around 30) and the dt to have the Courant number between 0,5 and 1. The problem is that in this case i get a Cd around 0,75 which is too high cause the reference value is around 0,3. And i don't know what am i doing wrong. I'm running K-w SSt model with PisoFoam solver. Maybe i should try running the simulation with the k-Epsilon model? Here is my setting -cylinder diameter:2m -flow velocity:1m/s -kinematic viscosity:4e-06 -Re=5e05 -y+ max=31.5 -lRef 2 (The diameter of the cylinder) -Aref 2 (the front area, my cylinder height is 1) -timestep 0.005s -simulation time 200s -my k inlet is calculated as 1.5(UI)^2 U is the flow velocity. I is the turbulence intensity=3,8% = 0,16*Re^(-1/8) -my omega inlet is calculated as kinlet^0.5/(l*Cmu^0.25) Cmu=0.09 l is the tubulence length l=0.07D -my initial omega at wall is calculated as omega=10*6v/(beta*deltay^2) v is the kinematic viscosity beta=0.075 deltay is the first boundary layer thickness=0.0012 The flow inlet boundary is located 10D upstream from the centre of the cylinder and the flow outlet boundary is located 30D downstream from the center of the cylinder. The top and bottom boundaries are located at a distance of 10D from the center of the cylinder. k: Code: ```/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 3.0.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object k; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -2 0 0 0 0]; internalField uniform 0.00144; boundaryField { inlet { type fixedValue; value uniform 0.00144; } outlet { type zeroGradient; } top { type symmetryPlane; } bottom { type symmetryPlane; } cylinder { type kqRWallFunction; value uniform 0.0; } sides { type empty; } } // ************************************************************************* //``` nut: Code: ```/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 3.0.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object nut; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -1 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type calculated; value uniform 0; } outlet { type calculated; value uniform 0; } top { type symmetryPlane; value uniform 0; } bottom { type symmetryPlane; value uniform 0; } cylinder { type nutUSpaldingWallFunction; value uniform 0; } sides { type empty; } } // ************************************************************************* //``` Omega: Code: ```/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 3.0.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object omega; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 0 -1 0 0 0 0]; internalField uniform 0.496; boundaryField { inlet { type fixedValue; value uniform 0.496; } outlet { type zeroGradient; } top { type symmetryPlane; } bottom { type symmetryPlane; } cylinder { type omegaWallFunction; value uniform 4.39e02; } sides { type empty; } } // ************************************************************************* //``` p: Code: ```/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 3.0.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; object p; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -2 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type zeroGradient; } outlet { type fixedValue; value uniform 0; } top { type symmetryPlane; } bottom { type symmetryPlane; } cylinder { type zeroGradient; } sides { type empty; } } // ************************************************************************* //``` U: Code: ```/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 3.0.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volVectorField; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1 -1 0 0 0 0]; internalField uniform (0 0 0); boundaryField { inlet { type fixedValue; value uniform (1 0 0); } outlet { type zeroGradient; } top { type symmetryPlane; } bottom { type symmetryPlane; } cylinder { type fixedValue; value uniform (0 0 0); } sides { type empty; } } // ************************************************************************* //``` fvSchemes: Code: ```/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 3.0.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ddtSchemes { default Euler; } gradSchemes { default Gauss linear; grad(p) Gauss linear; grad(U) Gauss linear; } divSchemes { default none; div(phi,U) Gauss limitedLinearV 1; div(phi,k) Gauss limitedLinear 1; div(phi,omega) Gauss limitedLinear 1; div(phi,epsilon) Gauss limitedLinear 1; div(phi,R) Gauss limitedLinear 1; div(R) Gauss linear; div(phi,nuTilda) Gauss limitedLinear 1; div((nuEff*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default none; laplacian(nuEff,U) Gauss linear corrected; laplacian((1|A(U)),p) Gauss linear corrected; laplacian(DkEff,k) Gauss linear corrected; laplacian(DomegaEff,omega) Gauss linear corrected; laplacian(DepsilonEff,epsilon) Gauss linear corrected; laplacian(DREff,R) Gauss linear corrected; laplacian(DnuTildaEff,nuTilda) Gauss linear corrected; } interpolationSchemes { default linear; interpolate(U) linear; } snGradSchemes { default corrected; } fluxRequired { default no; p ; } wallDist { method meshWave; } // ************************************************************************* //``` fvSolution: Code: ```/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 3.0.x | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { p { solver PCG; preconditioner DIC; tolerance 1e-06; relTol 0; } pFinal { solver PCG; preconditioner DIC; tolerance 1e-06; relTol 0; } U { solver PBiCG; preconditioner DILU; tolerance 1e-08; relTol 0; } k { solver PBiCG; preconditioner DILU; tolerance 1e-08; relTol 0; } omega { solver PBiCG; preconditioner DILU; tolerance 1e-08; relTol 0; } epsilon { solver PBiCG; preconditioner DILU; tolerance 1e-08; relTol 0; } R { solver PBiCG; preconditioner DILU; tolerance 1e-08; relTol 0; } nuTilda { solver PBiCG; preconditioner DILU; tolerance 1e-08; relTol 0; } } PISO { nCorrectors 2; nNonOrthogonalCorrectors 3; pRefCell 0; pRefValue 0; } // ************************************************************************* //``` And here is a picture of the mesh: Schermata 2016-04-07 alle 16.18.16.jpg

 April 8, 2016, 04:44 #2 Senior Member   Tom Fahner Join Date: Mar 2009 Location: Breda, Netherlands Posts: 634 Rep Power: 32 Hi, The Re=500 000 case is rather challenging to get right. In this case you will have transition of the laminar boundary layer to turbulence on the cylinder surface. If you use the k-omega-SST or another two-equation model without transition modelling you will not capture this effect and therefore you are unable to model this particular case. At higher Reynolds numbers (almost) the entire boundary layer is turbulent and you do not have this problem. So I would say that you should consider the k-kl-omega model if you plan to stay with RANS. For 1e+5 there may be laminar boundary layer separation still, which may explain why the k-omega-SST model can still achieve a reasonable result for that case. Regards, Tom ishfaqkhanniazi likes this.

 April 12, 2016, 03:53 #3 New Member   Tommaso Pascon Join Date: Mar 2016 Posts: 18 Rep Power: 10 Thanks for the answer. In this days I've read some papers on the k-kl omega but i have some questions about it: can I use the wall function with this turbulence model or i should i model my geometry to get y+ <1? I'd prefer to use the wall function to save some computational time. In the meantime i ran the same case with the realizable k-Epsilon and the k-epsilon turbulence models and i get better results (Cd = 0.5 and St = 0,31 for the Rk-eps and Cd = 0,36 and St = 0,3 for the standard k-esp). I'm not sure about the accuracy of these models cause i think they are fully turbulent if I recall correctly. And I've some doubts about the k-epsilon model cause the drag coefficient doesn't have an oscillating behavior like in the other cases, instead it has an asymptotic behavior to 0,36 and I cannot find a reason for that. Qinxu likes this.

 April 15, 2016, 08:29 #4 Senior Member   Tom Fahner Join Date: Mar 2009 Location: Breda, Netherlands Posts: 634 Rep Power: 32 Unfortunately k-kl-omega requires y+<1.

 March 14, 2022, 02:19 #5 New Member   秦旭 Join Date: Mar 2022 Posts: 1 Rep Power: 0 HELLO，can you provide this relevent cases ?(realizable k-Epsilon and the k-epsilon turbulence models to simulate flow around cylinder) Thank you very much!!