吾生有涯 学海无涯
析模有界 知识无界

【OpenFOAM案例】07 pitzDaily

本案例演示simpleFoam求解器使用方法。
simpleFoam求解器是一个稳态求解器,支持以下湍流模型:

  • kEpsilon(RAS)

  • kOmega(RAS)

  • LRR(RAS)

1 拷贝文件

本案例文件来自于官方提供的案例。
利用命令将文件拷贝到$FOAM_RUN文件夹。

cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily $FOAM_RUN
cd $FOAM_RUN/pitzDaily

查看pitzDaily文件路径,如下所示。

. ├── 0
│   ├── epsilon │   ├── f │   ├── k │   ├── nut │   ├── nuTilda │   ├── omega │   ├── p │   ├── U │   └── v2 ├── constant │   ├── transportProperties │   └── turbulenceProperties └── system    ├── blockMeshDict    ├── controlDict    ├── fvSchemes    ├── fvSolution    └── streamlines
3 directories, 16 files

2 costant文件夹

constant文件夹中包含两个文件transportProperties、turbulenceProperties,其中transportProperties指定介质的材料属性,turbulenceProperties文件指定使用的湍流模型。

2.2 transportProperties文件

transportProperties文件内容如下:

FoamFile {     version     2.0;     format      ascii;
   class       dictionary;    location    "constant";    object      transportProperties; }
// * * * * * * * * * * * * * * //
transportModel  Newtonian; nu              [0 2 -1 0 0 0 0] 1e-05;

在此文件中指定材料的运动粘度,此处指定运动粘度为1e-05。

2.1 turbulenceProperties文件

turbulenceProperties文件如下所示。

FoamFile {     version     2.0;     format      ascii;
   class       dictionary;    location    "constant";    object      turbulenceProperties; }
// * * * * * * * * * * * * * * * * //
simulationType RAS; RAS {    // Tested with kEpsilon, realizableKE,    // kOmega, kOmegaSST, v2f,    // ShihQuadraticKE, LienCubicKE.    RASModel        kEpsilon;    turbulence      on;    printCoeffs     on; }

文件中的RASModel关键字用于指定湍流模型。simpleFoam求解器支持的湍流模型包括:kEpsilon, realizableKE,kOmega,kOmegaSST,v2f,ShihQuadraticKE, LienCubicKE。

选用不同的湍流模型,则相对应的需要修改0文件夹中的文件。

  • laminar:无需修改

  • kEpsilon:修改k文件与epsilon文件

  • kOmega:修改k文件与omega文件

  • LRR:修改k、epsilon与R文件

  • Smagorinsky:修改nuSgs文件

  • oneEqEddy:修改k与nuSgs文件

  • SpalartAllmaras:修改nuSgs与nuTilda

此文件选用kEpsilon模型,因此需要修改0文件夹中的k文件与epsilon文件。

3 修改0文件夹

3.1 k文件

k文件内容如下:

FoamFile {     version     2.0;     format      ascii;
   class       volScalarField;    location    "0";    object      k; }
// * * * * * * *  * * * * * * * * * * //
dimensions      [0 2 -2 0 0 0 0]; internalField   uniform 0.375; boundaryField {    inlet    {        type            fixedValue;        value           uniform 0.375;    }    outlet    {        type            zeroGradient;    }    upperWall    {        type            kqRWallFunction;        value           uniform 0.375;    }    lowerWall    {        type            kqRWallFunction;        value           uniform 0.375;    }    frontAndBack    {        type            empty;    } }

在k文件中指定各边界的湍动能。本案例中指定inlet边界类型为fixedValue,值为0.375;指定outlet边界类型为zeroGradient;指定壁面边界类型为kqRWallFunction,值为0.375;frontAndBack为empty。

3.2 epsilon文件

修改epsilon文件,其内容为:

FoamFile {     version     2.0;     format      ascii;
   class       volScalarField;    location    "0";    object      epsilon; }
// * * * * * * * * * * * * * //
dimensions      [0 2 -3 0 0 0 0]; internalField   uniform 14.855; boundaryField {    inlet    {        type            fixedValue;        value           uniform 14.855;    }    outlet    {        type            zeroGradient;    }    upperWall    {        type            epsilonWallFunction;        value           uniform 14.855;    }    lowerWall    {        type            epsilonWallFunction;        value           uniform 14.855;    }    frontAndBack    {        type            empty;    } }

与k文件类似,指定各边界的湍流耗散率。

3.3 p文件

不管采用何种模型,p文件与U文件都需要修改。p文件内容如下:

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;    }    upperWall    {        type            zeroGradient;    }    lowerWall    {        type            zeroGradient;    }    frontAndBack    {        type            empty;    } }

在p文件中指定各边界的压力,需要注意的是,在不可压缩流动问题中,压力的单位是m2/s2,量纲为压力与密度的比值。

本案例中,指定出口outflow的压力为0,其他边界指定为zeroGradient。

3.4 U文件

U文件中指定边界的速度分布。本案例的U文件如下:

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 (10 0 0);    }    outlet    {        type            zeroGradient;    }    upperWall    {        type            noSlip;    }    lowerWall    {        type            noSlip;    }    frontAndBack    {        type            empty;    } }

本案例中,指定入口inlet速度为10m/s,outlet边界为zeroGradient,其他壁面边界指定为noSlip。

4 system文件夹

system文件夹中包含四个文件:

  • blcokMeshDict:指定几何与网格参数

  • controlDict:指定求解过程控制参数

  • fvSchemes:指定求解算法

  • fvSolution:指定求解控制参数

在本案例中,只需要修改controlDict文件。在controlDict文件中,指定了求解过程控制参数。controlDict文件内容如下:

FoamFile {     version     2.0;     format      ascii;
   class       dictionary;    location    "system";    object      controlDict; }
// * * * * * * * * * * * * * //
application     simpleFoam; startFrom       startTime; startTime       0; stopAt          endTime; endTime         2000; deltaT          1; writeControl    timeStep; writeInterval   100; purgeWrite      0; writeFormat     ascii; writePrecision  6; writeCompression off; timeFormat      general; timePrecision   6; runTimeModifiable true; functions {  
    #includeFunc residuals
}

需要注意文件中的endTime关键字指定的是迭代次数,而非真实的时间。在稳态计算中,deltaT指定的迭代间隔,一般情况下都要设置为1。

在此文件中的结尾,利用命令#includeFunc residuals指定输出残差数据,后面可以用foamMonitor输出残差图。

5 求解计算

本案例求解计算中,需要先利用blockMesh生成网格,之后利用simpleFoam求解器进行求解。

cd $FOAM_RUN/pitzDaily/ blockMesh simpleFoam

可以使用命令查看残差分布:

foamMonitor postProcessing/residuals/0/residuals.dat

残差分布如图所示。

6 计算后处理

利用paraFoam进行后处理。

paraFoam

速度分布如图所示。

压力分布如图所示:

也可以尝试着更换湍流模型进行计算,比较各种湍流模型的不同之处。

本篇文章来源于微信公众号: CFD之道

赞(1) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《【OpenFOAM案例】07 pitzDaily》
文章链接:https://www.topcfd.cn/1420/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册