本案例采用CFDSupprt的OpenFOAM for windows 19.10版本。描述利用simpleFoam计算稳态湍流流动。
1 案例描述
本案例计算模型如图所示。计算区域入口速度10 m/s,出口静压0 Pa,其他边界为光滑无滑移壁面。计算流动区域内流场分布。
2 OpenFOAM设置及运行
基本使用方法包括:
-
拷贝文件
cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily .
如下图所示
-
利用blockMesh生成计算网格
cd pitzDaily
blockMesh
如下图所示。
-
执行计算
simpleFoam
如下图所示。
-
查看计算结果
paraFoam
如下图所示。
-
速度分布
-
压力分布
-
湍动能
3 案例文件
案例文件组织如下图所示。
相比较前面的案例,在0文件夹中中多了很多文件,constant文件夹中多了一个turbulenceProperties文件,system文件夹基本没什么变化。
0文件夹中处理p文件与U文件之外,多出的文件均为湍流相关文件。需要注意的是,不同的湍流模型需要配合不同的湍流文件。
3.1 Constant文件夹
constant文件夹中包含有网格信息文件夹polyMesh、介质属性文件transportProperties以及湍流模型文件turbulenceProperties。
1、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-5 m2/s。
注意:这里的粘度值为介质的动力粘度与密度的比值,量纲也要相应的转化。
2、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;
}
该文件指定采用RAS方法处理湍流,这实际上是雷诺应力平均的缩写。(很奇怪为何不用RANS,而采用了一个RAS这样一个容易引起误解的关键字)
文件同时指定了RAS模型为kEpsilon,该方法为RAS方法其中的一种。此处可以采用的RAS方法包括kEpsilon, realizableKE, kOmega, kOmegaSST, v2f, ShihQuadraticKE, LienCubicKE等。
3.2 0文件夹
constant文件夹中包含有众多的文件,需要用到哪些文件与选用的湍流模型有关。
注:该案例为测试案例,因此在0文件夹中将所有湍流模型所需的文件均包含进去了。若只是计算kEpsilon模型,则只需要k文件与epsilon文件即可。
测试案例中的相关文件:
epsilon文件:所有ke系湍流模型均需要
k文件:所有ke系湍流模型均需要。
nut:所有的epsilon及omega系模型均需要
nuTilda:常用于SA模型
omega文件:所有omega系湍流模型需要
v2文件:用于v2f模型
f文件:用于v2f模型
其他模型的文件需求还包括:
laminar:不需要文件
LRR(RAS):需要k,epsilon及R文件
Smagorinsky(LES):需要nuSgs
oneEqEddy(LES):需要k,nuSgs
kEpsilon(RAS):需要k,epsilon
kOmega(RAS):需要k,omega
本案例如果使用kEpsilon模型进行计算的话,则只需要文件k、epsilon、nut、p与U这5个文件。该文件夹中所有文件用于指定初始时刻边界值。
1、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;
}
}
2、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;
}
}
3、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;
}
}
文件中指定进口及壁面边界的湍动能为0.375 m2/s2,同时指定了壁面边界采用kqRWallFunciton壁面函数。
4、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;
}
}
文件中指定进口及壁面边界的湍流耗散率为14.855 m2/s3,同时指定了壁面边界采用epsilonWallFunciton壁面函数。
5、mut文件
mut文件用于指定湍流粘度比。
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object nut;
}
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
type calculated;
value uniform 0;
}
outlet
{
type calculated;
value uniform 0;
}
upperWall
{
type nutkWallFunction;
value uniform 0;
}
lowerWall
{
type nutkWallFunction;
value uniform 0;
}
frontAndBack
{
type empty;
}
}
3.3 system文件夹
system文件夹中包含一些计算控制文件。
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 streamlines
}
这里指定endTime为2000,表示迭代2000步;指定writeTnterval为100,表示间隔100步保存一次计算结果。注意这里采用的是稳态计算。
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册