本案例利用OpenFOAM计算并验证压力梯度下两平面间库艾特流动。
重点演示内容:平移周期模型
”
1 案例描述
本案例模拟两个平行板之间的粘性流动。其中底板保持静止不动,顶板以恒定速度3 m/s移动。沿板平行方向压力梯度为-12 Pa/m。如图所示。
计算采用2D周期模型,长1.5m,宽1 m。其中介质参数:密度1kg/m3,动力粘度1 kg/m-s。
采用边界条件为:
-
顶板:壁面边界,速度沿X方向3 m/s -
底板:固定壁面边界 -
左右周期边界:压降-12 Pa/m
2 模型验证
解析解来自B.R. Munson, T.H. Okiishi, W.W. Huebsch, Fundamentals of Fluid Mechanics, 7th Edition,P324。
其中,U为顶板移动速度,本案例为3m/s;b为平板间距,本案例中为1 m。
代入本案例中的计算条件,可得到速度表达式:
3 OpenFOAM设置
算例为层流流动,可以使用icoFoam算例cavity作为模板进行计算,也可以在simpleFoam中随便找个算例作为模板。
3.1 文件准备
进入工作目录,并利用下面的命令准备文件。
cp -r /opt/openfoam8/tutorials/incompressible/icoFoam/cavity/cavity .
mv cavity/ VM04
cd VM04
这里也可以利用其他算例模板,不一定非要用cavity。
删除多余的文件:
rm system/blockMeshDict
算例文件结构如下图所示。
3.2 网格处理
本算例网格为二维周期网格,这里利用命令导入Fluent case文件,并修改边界类型。
-
将网格文件 VM04.cas
放到算例文件夹中 -
利用下面的命令转换计算网格
fluentMeshToFoam VM04.msh
-
修改 constant/PolyMesh/boundary
文件,主要处理平移周期
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * //
5
(
//INLET与OUTLET边界互为平移周期
//fixedJumpAMI继承自jumpCyclicAMI
//而jumpCyclicAMI继承自cyclicAMI
INLET
{
type cyclicAMI;
nFaces 14;
startFace 526;
matchTolerance 0.0001;
neighbourPatch OUTLET;
transformType translational; //指定为平移周期
separationVector (-1.5 0 0); //指定分割向量
}
OUTLET
{
type cyclicAMI;
nFaces 14;
startFace 540;
matchTolerance 0.0001;
neighbourPatch INLET;
transformType translational;
separationVector (1.5 0 0);
}
TOP
{
type wall;
inGroups List 1(wall);
nFaces 20;
startFace 554;
}
BOTTOM
{
type wall;
inGroups List 1(wall);
nFaces 20;
startFace 574;
}
frontAndBackPlanes
{
type empty;
inGroups List 1(empty);
nFaces 560;
startFace 594;
}
)
文件改造完毕后,利用命令checkMesh
检查网格。如下图所示表示网格没有问题。
3.3 介质材料属性
修改constant/transportProperties
文件,指定材料介质的运动粘度为1 m^2/s
,如下所示。
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * //
nu [0 2 -1 0 0 0 0] 1;
3.4 边界条件与初始条件
1、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 cyclicAMI;
}
OUTLET
{
type cyclicAMI;
}
TOP
{
type fixedValue;
value uniform (3 0 0);
}
BOTTOM
{
type noSlip;
}
frontAndBack
{
type empty;
}
}
2、p文件
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 fixedJumpAMI;
patchType cyclicAMI;
// 压力梯度为12 Pa/m,因此总压降为12*1.5=18 Pa
jump uniform -18;
value $internalField;
}
OUTLET
{
type fixedJumpAMI;
patchType cyclicAMI;
jump uniform 0;
value $internalField;
}
TOP
{
type zeroGradient;
}
BOTTOM
{
type zeroGradient;
}
frontAndBack
{
type empty;
}
}
2.5 计算控制
如下所示设置controlDict
文件。
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * //
application icoFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 10;
deltaT 0.02;
writeControl timeStep;
writeInterval 20;
purgeWrite 2;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
其他文件保持默认设置。
文件准备完毕后,利用命令icoFoam
进行计算。
icoFoam
3 计算结果
计算完毕后验证结果。
-
速度分布
-
压力分布
-
在x=0.75 m位置取直线绘制速度在y方向上的分布
-
与解析解比较
cd "/mnt/i/OpenFOAM/Verification/VM04/VM04"
set xrange [0.0:1.0]
plot -6*x*x+9*x lw 2 w line t "analysis","analysis.txt" u 1:2 w point pt 7 t "numeric"
unset key
set xlabel "x(m)"
set ylabel "velocity(m/s)"
replot
比较结果如下图所示。
计算结果看着还不错。
计算文件:
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册