CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Flow past a 2D cylinder - High Re (1E+05) - Cd too high (https://www.cfd-online.com/Forums/openfoam-solving/169324-flow-past-2d-cylinder-high-re-1e-05-cd-too-high.html)

Pervispasco April 7, 2016 10:42

Flow past a 2D cylinder - High Re (1E+05) - Cd too high
 
1 Attachment(s)
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:

Attachment 46547

tomf April 8, 2016 04:44

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

Pervispasco April 12, 2016 03:53

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.

tomf April 15, 2016 08:29

Unfortunately k-kl-omega requires y+<1.

Qinxu March 14, 2022 02:19

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!!


All times are GMT -4. The time now is 15:20.