CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

Suitable convection schemes for PANS

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 14, 2017, 06:22
Default Suitable convection schemes for PANS
  #1
New Member
 
Maurits van den Boogaard
Join Date: Sep 2017
Posts: 1
Rep Power: 0
mboogaard is on a distinguished road
Hi all,

First of all, I am pretty new to C++ and OpenFOAM and started using it in September. I am a graduate student studying hydrodynamics so I do have some background.

I am working on the simulation of flow around a ship using a k-omega SST model with the k and omega equations adapted to PANS following procedures by Girimaji a.o.
Currently I am checking the turbulent structure development for f_k values 0.4 and 0.7, where 0.4 should produce quite some small scale structures, and 0.7 should at least show some differences with a standard RANS calculation.
Initially I was performing calculations using linearUpwindV for the velocity term in divSchemes, but I noticed when running a validation case on a square cylinder that this was way too restrictive on structure development. The much simpler cylinder geometry allowed me to run full CD for all quantities, showing the turbulent structures I expected. Due to the geometry (and worse mesh quality, which I cannot rebuild but should be good enough) of the ship I cannot do this. I tried using LUST, as this is also giving me the structures, but the simulation blows up no matter what I try.

I was advised to use limitedLinearV 0.05, but after waiting for 1 transient flow through time there are hardly any structures in the 0.4 and none in the 0.7, which leads me to conclude that it is still too dissipative.

Regarding turbulent quantities: the nu_t value is reduced as it should be in PANS, but the kinetic energy that is predicted is still way too low compared to what I was expecting.

controlDict:
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  2.0.0                                 |
|   \\  /    A nd           | Web:    www.OpenFOAM.com                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format    ascii;
    class    dictionary;
    location    "system";
    object    controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

libs ("$FOAM_USER_LIBBIN/libMBincompressibleTurbulenceModels.so");

//application     simpleFoam;
application     pimpleFoam;


startFrom    latestTime;
//startFrom     startTime;

startTime    0;

stopAt          endTime;

//endTime    12.625; // dT 2e-5 is 2.25 transient sweeps
endTime       25.25; //4.5 transients
//endTime    4.31; // intermediate

deltaT            3e-5; //USE THIS! was 2e-5 before instability LUST

//deltaT          1;    // SIMPLE
//deltaT          4e-4; //to speed up transient


//writeControl    timeStep;
//writeInterval   2500;

writeControl    runTime;
//writeInterval   0.00400; // every 500 iter or 17 minutes walltime
writeInterval   0.03600; // every 1800 or 1 hour walltime 2e-5
//writeInterval   0.0018; // 1800 1e-6

purgeWrite    10;

writeFormat     binary;

writePrecision  10;

writeCompression off;

timeFormat    general;

timePrecision   6;

runTimeModifiable true;

adjustTimeStep  no;
fvSchemes:
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  2.0.0                                 |
|   \\  /    A nd           | Web:    www.OpenFOAM.com                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format    ascii;
    class    dictionary;
    location    "system";
    object    fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

ddtSchemes
{
    default              backward;
   // default              Euler;
   // default           steadyState;
}

gradSchemes
{
    default         Gauss linear ;
}

divSchemes
{
    default         none;
    //div(phi,U)          Gauss linear;
    //div(phi,U)        bounded Gauss limitedLinearV 0.1;
//   div(phi,U)      bounded Gauss LUST grad(U);
   div(phi,U)       bounded Gauss limitedLinearV 0.05;
// div(phi,U)           bounded Gauss limitedLinearV 0.9;// bigger value = more stable

//    div(phi,U)        bounded Gauss linearUpwindV grad(U); // if not stable, try this first, allows bigger timest$

    div(phi,k)      bounded Gauss upwind;  //originals 1-4below
    div(phi,omega) bounded Gauss upwind;
    div(phi,kU)      bounded Gauss upwind;
    div(phi,omegaU) bounded Gauss upwind;

    div(phi,nuTilda) bounded Gauss upwind;
    div((nuEff*dev2(T(grad(U)))))  Gauss linear;
}

laplacianSchemes
{
    default     Gauss linear limited corrected 0.33;
    //default   Gauss linear corrected;
}

interpolationSchemes
{
    default         linear;
    interpolate(U)  linear;
}

snGradSchemes
{
    default        limited corrected 0.33;
    //default        corrected;
}

fluxRequired
{
    default         no;
    p               ;
}
wallDist
{
    method meshWave;
}


]
fvSolution

Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  v1706                                 |
|   \\  /    A nd           | Web:    www.OpenFOAM.com                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format    ascii;
    class    dictionary;
    location    "system";
    object    fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

solvers
{
    pcorr
    {
         solver          PCG;
        preconditioner
        {
            preconditioner  GAMG;
            tolerance       1e-8;
            relTol          1e-2;
            smoother        GaussSeidel;
            nPreSweeps      1;
            nPostSweeps     1;
            nBottomSweeps   2;
            cacheAgglomeration false;
            nCellsInCoarsestLevel 100;
            agglomerator    faceAreaPair;
            mergeLevels     1;
        }

    tolerance    1e-8;
        relTol          1e-3;
        maxIter         100;
    }

    p
    {
         solver          PCG;


        preconditioner
        {
            preconditioner  GAMG;

            smoother        FDIC; 
            agglomerator    faceAreaPair;
            nPreSweeps      0;
            nPostSweeps     1;
            nFinestSweeps   2;
            cacheAgglomeration on;
            nCellsInCoarsestLevel 100; 
            mergeLevels     1;
            tolerance       1e-8;
            relTol          1e-2;
        }
    tolerance    1e-09;
        relTol          1e-3;
        //minIter        1;
    }

    pFinal
    {
         $p;
    relTol          0.0;
     }
    "U.*"
    {
         type           coupled;
        solver         PBiCCCG;
        preconditioner DILU;
        tolerance      (1e-8 1e-8 1e-8);
        relTol         (0 0 0);
        minIter        1;
    }

    "(k|omega|kU|omegaU).*"
    {
         solver          PBiCGStab;
        preconditioner  DILU;
        tolerance    1e-8;
        relTol          1e-3;
        minIter         3;
    }

}

SIMPLE
{
    //momentumPredictor   off;
    nNonOrthogonalCorrectors 1; 
    consistent  yes;

    pRefCell        0;
    pRefValue       0;
}

PIMPLE
{
    momentumPredictor   on;
    correctPhi          off;
    nOuterCorrectors    1;
    nCorrectors         2;
    turbOnFinalIterOnly  true;
}

relaxationFactors
{
    fields
    {
         p               0.6;
       // p               0.3;
    }
    equations
    {
        U               0.6;
        k               0.6;
        kU              0.6;
        omega           0.6;
        omegaU          0.6;
    }
}

cache
{
    grad(U);
}
Any ideas on how I could make LUST stable? Or any other suggestions based on what is happening?
mboogaard is offline   Reply With Quote

Old   July 29, 2020, 19:35
Default
  #2
Member
 
Gang Wang
Join Date: Oct 2019
Location: China
Posts: 64
Rep Power: 8
Gang Wang is on a distinguished road
Quote:
Originally Posted by mboogaard View Post
Hi all,

First of all, I am pretty new to C++ and OpenFOAM and started using it in September. I am a graduate student studying hydrodynamics so I do have some background.

I am working on the simulation of flow around a ship using a k-omega SST model with the k and omega equations adapted to PANS following procedures by Girimaji a.o.
Currently I am checking the turbulent structure development for f_k values 0.4 and 0.7, where 0.4 should produce quite some small scale structures, and 0.7 should at least show some differences with a standard RANS calculation.
Initially I was performing calculations using linearUpwindV for the velocity term in divSchemes, but I noticed when running a validation case on a square cylinder that this was way too restrictive on structure development. The much simpler cylinder geometry allowed me to run full CD for all quantities, showing the turbulent structures I expected. Due to the geometry (and worse mesh quality, which I cannot rebuild but should be good enough) of the ship I cannot do this. I tried using LUST, as this is also giving me the structures, but the simulation blows up no matter what I try.

I was advised to use limitedLinearV 0.05, but after waiting for 1 transient flow through time there are hardly any structures in the 0.4 and none in the 0.7, which leads me to conclude that it is still too dissipative.

Regarding turbulent quantities: the nu_t value is reduced as it should be in PANS, but the kinetic energy that is predicted is still way too low compared to what I was expecting.

controlDict:
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  2.0.0                                 |
|   \\  /    A nd           | Web:    www.OpenFOAM.com                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format    ascii;
    class    dictionary;
    location    "system";
    object    controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

libs ("$FOAM_USER_LIBBIN/libMBincompressibleTurbulenceModels.so");

//application     simpleFoam;
application     pimpleFoam;


startFrom    latestTime;
//startFrom     startTime;

startTime    0;

stopAt          endTime;

//endTime    12.625; // dT 2e-5 is 2.25 transient sweeps
endTime       25.25; //4.5 transients
//endTime    4.31; // intermediate

deltaT            3e-5; //USE THIS! was 2e-5 before instability LUST

//deltaT          1;    // SIMPLE
//deltaT          4e-4; //to speed up transient


//writeControl    timeStep;
//writeInterval   2500;

writeControl    runTime;
//writeInterval   0.00400; // every 500 iter or 17 minutes walltime
writeInterval   0.03600; // every 1800 or 1 hour walltime 2e-5
//writeInterval   0.0018; // 1800 1e-6

purgeWrite    10;

writeFormat     binary;

writePrecision  10;

writeCompression off;

timeFormat    general;

timePrecision   6;

runTimeModifiable true;

adjustTimeStep  no;
fvSchemes:
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  2.0.0                                 |
|   \\  /    A nd           | Web:    www.OpenFOAM.com                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format    ascii;
    class    dictionary;
    location    "system";
    object    fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

ddtSchemes
{
    default              backward;
   // default              Euler;
   // default           steadyState;
}

gradSchemes
{
    default         Gauss linear ;
}

divSchemes
{
    default         none;
    //div(phi,U)          Gauss linear;
    //div(phi,U)        bounded Gauss limitedLinearV 0.1;
//   div(phi,U)      bounded Gauss LUST grad(U);
   div(phi,U)       bounded Gauss limitedLinearV 0.05;
// div(phi,U)           bounded Gauss limitedLinearV 0.9;// bigger value = more stable

//    div(phi,U)        bounded Gauss linearUpwindV grad(U); // if not stable, try this first, allows bigger timest$

    div(phi,k)      bounded Gauss upwind;  //originals 1-4below
    div(phi,omega) bounded Gauss upwind;
    div(phi,kU)      bounded Gauss upwind;
    div(phi,omegaU) bounded Gauss upwind;

    div(phi,nuTilda) bounded Gauss upwind;
    div((nuEff*dev2(T(grad(U)))))  Gauss linear;
}

laplacianSchemes
{
    default     Gauss linear limited corrected 0.33;
    //default   Gauss linear corrected;
}

interpolationSchemes
{
    default         linear;
    interpolate(U)  linear;
}

snGradSchemes
{
    default        limited corrected 0.33;
    //default        corrected;
}

fluxRequired
{
    default         no;
    p               ;
}
wallDist
{
    method meshWave;
}


]
fvSolution

Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  v1706                                 |
|   \\  /    A nd           | Web:    www.OpenFOAM.com                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format    ascii;
    class    dictionary;
    location    "system";
    object    fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

solvers
{
    pcorr
    {
         solver          PCG;
        preconditioner
        {
            preconditioner  GAMG;
            tolerance       1e-8;
            relTol          1e-2;
            smoother        GaussSeidel;
            nPreSweeps      1;
            nPostSweeps     1;
            nBottomSweeps   2;
            cacheAgglomeration false;
            nCellsInCoarsestLevel 100;
            agglomerator    faceAreaPair;
            mergeLevels     1;
        }

    tolerance    1e-8;
        relTol          1e-3;
        maxIter         100;
    }

    p
    {
         solver          PCG;


        preconditioner
        {
            preconditioner  GAMG;

            smoother        FDIC; 
            agglomerator    faceAreaPair;
            nPreSweeps      0;
            nPostSweeps     1;
            nFinestSweeps   2;
            cacheAgglomeration on;
            nCellsInCoarsestLevel 100; 
            mergeLevels     1;
            tolerance       1e-8;
            relTol          1e-2;
        }
    tolerance    1e-09;
        relTol          1e-3;
        //minIter        1;
    }

    pFinal
    {
         $p;
    relTol          0.0;
     }
    "U.*"
    {
         type           coupled;
        solver         PBiCCCG;
        preconditioner DILU;
        tolerance      (1e-8 1e-8 1e-8);
        relTol         (0 0 0);
        minIter        1;
    }

    "(k|omega|kU|omegaU).*"
    {
         solver          PBiCGStab;
        preconditioner  DILU;
        tolerance    1e-8;
        relTol          1e-3;
        minIter         3;
    }

}

SIMPLE
{
    //momentumPredictor   off;
    nNonOrthogonalCorrectors 1; 
    consistent  yes;

    pRefCell        0;
    pRefValue       0;
}

PIMPLE
{
    momentumPredictor   on;
    correctPhi          off;
    nOuterCorrectors    1;
    nCorrectors         2;
    turbOnFinalIterOnly  true;
}

relaxationFactors
{
    fields
    {
         p               0.6;
       // p               0.3;
    }
    equations
    {
        U               0.6;
        k               0.6;
        kU              0.6;
        omega           0.6;
        omegaU          0.6;
    }
}

cache
{
    grad(U);
}
Any ideas on how I could make LUST stable? Or any other suggestions based on what is happening?
Hi!

I was also troubled by this issue, I feeled that the mesh quality might count more than the discrezation scheme. What do you think of this issue?

Best regards,
Gang Wang
Gang Wang is offline   Reply With Quote

Reply

Tags
convection schemes, pans, turbulence


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Setting the height of the stream in the free channel kevinmccartin CFX 12 October 13, 2022 22:43
error message cuteapathy CFX 14 March 20, 2012 07:45
May I'll create a sandbox for approximation schemes of convection term section? Michail CFD-Wiki 0 November 7, 2011 08:36
Recommended convection schemes for swirling flow in diffuser hani OpenFOAM Running, Solving & CFD 12 August 23, 2005 12:05
Higher-order bounded convection schemes for pure advection with discontinuity Anthony Main CFD Forum 3 June 13, 1999 03:36


All times are GMT -4. The time now is 07:38.