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

OpenFOAM|算例 03 pitzDaily

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

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

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

式中为待求的标量;为速度向量;为扩散系数。待求物理量为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之道

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

说两句 抢沙发

评论前必须登录!

 

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

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

支付宝扫一扫

微信扫一扫

登录

找回密码

注册