チャネルRANS

395 views
Skip to first unread message

mei

unread,
Feb 16, 2014, 1:34:05 AM2/16/14
to open...@googlegroups.com
皆様,こんにちは

LESの方は格子点数を増やして計算しています.(同じ格子点数のデカルト座標ではコロケートではスタガードよりも解像度が低下するとありましたので・・・)その間RANSの勉強をしようかと同様の領域でチャネルRANSを試みようとしましたが,どうにもうまく流体が流れません・・・
離散化を中心差分にしても発散したりしており,お知恵を貸していただきたいと思いました.

あとLESでも思ったのですが
pRefPointとpRefValueの使い方がいまいちわかりません.圧力の基準位置を決めていることはわかりましたがどこを基準にすればいいか・・・

よろしくお願いいたします.

"乱流モデル"
Launder-Sharma

"solver"
simpleFoam

"境界条件"
境界条件は
側面・・・empty
入口・出口・・・cyclic
上下面・・・wall

"境界・初期条件"
速度・・・壁面静止,LES同様研究室で使用している速度初期値を使用
圧力・・・壁面零圧力勾配,一様0
散逸・・・壁面2.802e-06指定,一様2.802e-06
乱流エネルギー・・・壁面3.750e-05指定,一様3.750e-05
渦動粘性係数・・・壁面nutkWallFunctionを用いて0に指定,一様0
nuTilda(擬似動粘性係数?)・・・壁面勾配0,一様0

"blockMeshDict"
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 1;

vertices
(
    (0 0 0)
    (0.064 0 0)
    (0 0.005 0)
    (0.064 0.005 0)
    (0 0.01 0)
    (0.064 0.01 0)
    (0 0 0.016)
    (0.064 0 0.016)
    (0 0.005 0.016)
    (0.064 0.005 0.016)
    (0 0.01 0.016)
    (0.064 0.01 0.016)
);

blocks
(
    hex (0 1 3 2 6 7 9 8) (64 25 64) simpleGrading (1 15 1)
    hex (2 3 5 4 8 9 11 10) (64 25 64) simpleGrading (1 0.0667 1)
);

edges
(
);

boundary
(
    lowerWall
    {
        type            wall;
        faces           ((0 1 7 6));
    }
    upperWall
    {
        type            wall;
        faces           ((4 10 11 5));
    }
    sides_backdown
    {
        type            empty;
//        neighbourPatch  sides_frontdown;
        faces           ((0 2 3 1));
    }
    sides_frontdown
    {
        type            empty;
//        neighbourPatch  sides_backdown;
        faces           ((6 7 9 8));
    }
    sides_backup
    {
        type            empty;
//        neighbourPatch  sides_frontup;
        faces           ((2 4 5 3));
    }
    sides_frontup
    {
        type            empty;
//        neighbourPatch  sides_backup;
        faces           ((8 9 11 10));
    }

    outletdown
    {
        type            cyclic;
        neighbourPatch  inletdown;
        faces           ((1 3 9 7));
    }
    inletdown
    {
        type            cyclic;
        neighbourPatch  outletdown;
        faces           ((0 6 8 2));
    }

    outletup
    {
        type            cyclic;
        neighbourPatch  inletup;
        faces           ((3 5 11 9));
    }
    inletup
    {
        type            cyclic;
        neighbourPatch  outletup;
        faces           ((2 8 10 4));
    }
);

mergePatchPairs
(
);

// ************************************************************************* //

"RASProperties"
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "constant";
    object      RASProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

RASModel        LaunderSharmaKE;

turbulence      on;

printCoeffs     on;


// ************************************************************************* //

"transportProperties"
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "constant";
    object      transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

transportModel  Newtonian;

nu              nu [ 0 2 -1 0 0 0 0 ] 1.5e-05;

// ************************************************************************* //

"fvOptions"
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      fvOptions;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

momentumSource1
{
    type            pressureGradientExplicitSource;
    active          on;            //on/off switch
    selectionMode   all;       //cellSet // points //cellZone

    pressureGradientExplicitSourceCoeffs
    {
        fieldNames  (U);
        Ubar        ( 8.475 0 0 );
    }
}


// ************************************************************************* //

"fvSchemes"
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

ddtSchemes
{
    default         steadyState;
}

gradSchemes
{
    default         Gauss linear;
    grad(p)         Gauss linear;
    grad(U)         Gauss linear;
}

divSchemes
{
    default         none;
    div(phi,U)      bounded Gauss upwind;
    div(phi,k)      bounded Gauss upwind;
    div(phi,epsilon) bounded Gauss upwind;
    div(phi,R)      bounded Gauss upwind;
    div(R)          bounded Gauss upwind;
    div(phi,nuTilda) Gauss upwind;
    div((nuEff*dev(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(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               ;
}


// ************************************************************************* //

"fVSolutions"
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

solvers
{
    p
    {
        solver          PCG;
        preconditioner  DIC;
        tolerance       1e-06;
        relTol          0.01;
    }

    U
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance       1e-05;
        relTol          0.1;
    }

    k
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance       1e-05;
        relTol          0.1;
    }

    epsilon
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance       1e-05;
        relTol          0.1;
    }

    R
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance       1e-05;
        relTol          0.1;
    }

    nuTilda
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance       1e-05;
        relTol          0.1;
    }
}

SIMPLE
{
    nNonOrthogonalCorrectors 0;
    pRefPoint       (0 0.005 0008);
    pRefValue       0;
    residualControl
    {
        p               1e-2;
        U               1e-3;
        "(k|epsilon|omega)" 1e-3;
    }
}

relaxationFactors
{
    fields
    {
        p               0.3;
    }
    equations
    {
        U               0.8;
        k               0.8;
        epsilon         0.8;
        R               0.8;
        nuTilda         0.8;
    }
}

controlDict.txt
0parameter.txt
blockMeshDict.txt

ohbuchi

unread,
Feb 23, 2014, 8:34:51 AM2/23/14
to open...@googlegroups.com
圧力の参照点ですが、結論からいうと流体内部領域ならどこでも構いません。
圧力値がシフトするだけで流れに影響はありませんので。
RANSが収束しない件ですが、おそらくkやεなどの初期値、境界値が小さすぎるのが原因です。
RANSでは、kは主流の乱れ強さ5%、εは入口の水力等価直径などから適当に
評価することが多いです。過去ログを検索してみてください。


2014年2月16日日曜日 7時34分05秒 UTC+1 mei:

mei

unread,
Feb 24, 2014, 8:02:09 AM2/24/14
to open...@googlegroups.com
ohbuchi様

ありがとうございます.
乱流エネルギーと散逸についてある程度見積もって計算しましたら添付図のようになりました.
◯は理論式から出したものです.

摩擦速度dU/dyは私が見つけたものではsnGradを用いてそこから勾配をとっていました.そこで,それを片側3点差分に変更したかったのですが,プログラムが理解できず断念し,excelで計算しました.
粘性底層ではよく一致し,外層で上に分布します.以前のLES同様層流になっているみたいです・・・
対流項には中心差分を用いており,数値粘性はそこまで効いていないと思うのですが・・・

また,別件ですが
fvSchemesの対流項についてるboundedについて,計算を安定化させてるということですが,できるだけそういった処理をせず計算しようと思い除去したら以下のエラーがでました.
これがどこから来てるのかがよくわかりません
最後の文からcontrolDictをいろいろいじくりましたが改善しませんでした.このエラーは無視してもいいものでしょうか?

--> FOAM Warning :
    From function gaussConvectionScheme
    in file finiteVolume/convectionSchemes/gaussConvectionScheme/gaussConvectionScheme.H at line 123
    Reading "/home/eustia/Desktop/NIT/channelLS2/system/fvSchemes.divSchemes.div(phi,k)" at line 44
    Unbounded 'Gauss' div scheme used in steady-state solver, use 'bounded Gauss' to ensure boundedness.
    To remove this warning switch off 'boundedGauss' in "/home/eustia/OpenFOAM/OpenFOAM-2.2.x/etc/controlDict"

uplus.png

ohbuchi

unread,
Feb 24, 2014, 3:00:08 PM2/24/14
to open...@googlegroups.com
バージョン2.2から導入されたboundedスキームを使ったほうが良いという警告です。
定常解法の場合に使ったほうが収束が良くなるそうです。
http://www.openfoam.org/version2.2.0/numerics.php

あまり大きな違いは感じられたことがないのですが。


2014年2月24日月曜日 22時02分09秒 UTC+9 mei:
Reply all
Reply to author
Forward
0 new messages