首页/文章/ 详情

OpenFOAM|算例 03 pitzDaily

精品
作者优秀平台推荐
详细信息
文章亮点
作者优秀
优秀教师/意见领袖/博士学历/特邀专家
平台推荐
主编推荐/内容稀缺
3年前浏览2605

本算例利用scalarTransportFoam求解器计算区域内的标量输运问题。

案例路径:$FOAM_TUTORIALS/basic/scalarTransportFoam/pitzDialy

求解器scalarTransportFoam主要用于求解标量输运问题。该求解器求解的控制方程为:

image.png

式中为待求的标量;为速度向量;为扩散系数。待求物理量为T与U,并且需要给定扩散系数。

1 算例描述

算例文件结构如下所示。

图片

文件Allrun中的内容如下所示。

#!/bin/sh
cd ${0%/*} || exit 1    # Run from this directory

# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions

application="$(getApplication)"

runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/pitzDaily
runApplication $application

文件内容比较简单。本算例中并未包含blockMeshDict文件,而是利用了其他文件夹中的字典文件。但是如果要利用其它文件夹中的字典文件,则在调用blockMesh命令时需要添加参数-dict,如本算例要生成网格,可以使用命令:

blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/pitzDaily

网格如下图所示。

图片

入口速度10 m/s,标量值为1。

注:在利用scalarTranportFoam求解器时,可以先使用其他求解器(如icoFoam)得到计算区域内的速度分布,并以此作为scalarTransportFoam求解器的初始速度值。

2 算例介绍

算例需要指定参数值DT,以及边界条件的速度U与标量T。

2.1 输运参数

指定transportProperties文件中的材料介质参数DT。文件内容如下所示,本算例指定DT值为0.01 m2/s。

FoamFile
{
   version     2.0;
   format      ascii;
   class       dictionary;
   location    "constant";
   object      transportProperties;
}
// * * * * * * * * * * * * * * * * * //
DT              DT [0 2 -1 0 0 0 0] 0.01;

2.2 边界条件与初始条件

1、T文件

指定边界条件标量T的值,如下图所示。

FoamFile
{
   version     2.0;
   format      ascii;
   class       volScalarField;
   object      T;
}
// * * * * * * * * * * * * * * * * //
dimensions      [0 0 0 1 0 0 0];  //这里指定标量为温度单位
internalField   uniform 0;
boundaryField
{
   inlet
   {
       type            fixedValue;
       value           uniform 1; //指定inlet边界标量值为1
   }

   outlet
   {
       type            zeroGradient;
   }

   upperWall
   {
       type            zeroGradient;
   }

   lowerWall
   {
       type            zeroGradient;
   }

   frontAndBack
   {
       type            empty;
   }
}

2、U文件

本算例中,U文件

FoamFile
{
   version     2.0;
   format      ascii;
   class       volVectorField;
   location    "288";
   object      U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 1 -1 0 0 0 0];

internalField   nonuniform List<vector>
12225    // 12225个网格上的速度值列表
(
(9.85698 -0.886449 0)
(9.66665 -0.740747 0)
(9.45574 -0.429483 0)
(9.22457 -0.222216 0)
(9.00656 -0.106462 0)
(8.81447 -0.0458767 0)
(8.64764 -0.0151809 0)
(8.50548 0.000439179 0)
(8.38389 0.00837067 0)
   ...  // 省略显示
)
;

boundaryField
{
   inlet
   {
       type            fixedValue;
       value           uniform (10 0 0); //指定inlet边界速度值为10 m/s
   }
   outlet
   {
       type            zeroGradient;
   }
   upperWall
   {
       type            noSlip;
   }
   lowerWall
   {
       type            noSlip;
   }
   frontAndBack
   {
       type            empty;
   }
}

2.3 求解控制

1、controlDict文件

FoamFile
{
   version     2.0;
   format      ascii;
   class       dictionary;
   location    "system";
   object      controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * //
application     scalarTransportFoam;
startFrom       startTime;
startTime       0;
stopAt          endTime;
endTime         0.1;   // 指定计算时间为0.1 s
deltaT          0.0001; // 指定时间步长为0.0001 s,通常控制库朗数在1附近即可
writeControl    timeStep;
writeInterval   50;
purgeWrite      0;
writeFormat     ascii;
writePrecision  6;
writeCompression off;
timeFormat      general;
timePrecision   6;
runTimeModifiable true;

2、fvSchemes文件

文件内容如下所示。

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

gradSchemes
{
   default         Gauss linear;
}

divSchemes
{
   default         none;
   div(phi,T)      Gauss linearUpwind grad(T);
}

laplacianSchemes
{
   default         none;
   laplacian(DT,T) Gauss linear corrected;
}

interpolationSchemes
{
   default         linear;
}

snGradSchemes
{
   default         corrected;
}

3、fvSolution文件

文件内容为:

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

solvers
{
   T
   {
       solver          PBiCGStab;
       preconditioner  DILU;
       tolerance       1e-06;
       relTol          0;
   }
}

SIMPLE
{
   nNonOrthogonalCorrectors 0;
}

3 计算求解

运行命令进行求解及后处理:

scalarTransportFoam
paraFoam
  • 标量T分布

图片

  • 速度U分布

图片

---------------------------------------------------------------------------------------------

版权声明:

原创文章,来源CFD之道,本文已经授权,欢迎分享,如需转载请联系作者。


科普仿真体系求解技术代码&命令网格处理OpenFOAM
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2020-12-24
最近编辑:3年前
CFD之道
博士 | 教师 探讨CFD职场生活,闲谈CFD里外
获赞 2557粉丝 11207文章 729课程 27
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈