本算例来自《ANSYS Fluid Dynamics Verification Manual》中的VMFL010: Laminar Flow in a 90° Tee-Junction.
入口处为充分发展的层流速度分布,中心轴线处的速度为1m/s(即最大速度为umax=1m/s),其余的两个出口静压为0。
本算例的入口速度分布满足下面的形式:
首先进行建模操作,任何建模软件均可,本算例采用ICEM直接建模,生成网格,然后利用OpenFOAM下转化网格,划分完成的网格如下:
![](https://i-blog.csdnimg.cn/blog_migrate/b8f4a32a22a4573852a5b5de31f31291.png)
首先新建一个文件夹,名字任取,用来作为算例文件夹,本算例中我将该文件夹命名为:90Tee
然后进入OpenFOAM的安装目录,将安装目录下的pitzDaily算例(我的目录为/opt/openfoam5/tutorials/incompressible/simpleFoam/pitzDaily)下的0文件夹、constant文件夹和system文件夹拷贝到90Tee文件夹下,然后删除system目录下的blockMeshDict文件,因为我们利用OpenFOAM的命令转化.msh文件为OpenFOAM能接受的网格文件,删除system目录下的streamlines文件,删除0文件夹下的epsilon,f,k,nut,nuTilda,omega,v2这些文件,因为本算例不会用到这些文件。
![](https://i-blog.csdnimg.cn/blog_migrate/83aa158632ab6afa747afad28ed841e1.png)
这次我们由于要设置入口处是充分发展的速度,我们就只需要修改新算例下0文件夹的p和U文件,constant目录下的transportproperties文件、turbulenceProperties文件和system目录下的controlDict文件,其他如网格转换,设置入口的速度的操作我们通过Python脚本来实现修改。
我们打开constant文件夹下的transportproperties文件,此处我们将运动黏度设置为0.003333㎡/s
接着修改turbulenceProperties文件,此处我们将模拟类型设置为层流(laminar)
然后对初始边界条件进行设置,下面转入0文件夹下进行操作:
在0文件夹下我们可以看到U和P两个文件:
然后对初始边界条件进行设置,下面转入0文件夹下进行操作:
修改P文件和U文件
P文件当中的内容如下:
U文件当中的内容如下:
说明一下:
INLET
{
}
入口的边界设置为这样的形式,在后面运行Python脚本以后会被修改为正确的边界形式。
我们编写如下的Python脚本:
说明一下:
使用脚本并不是唯一写选择,上面脚本的操作也可以使用诸如Excel等工具实现。我们主要是通过网格的位置信息,然后计算得到该位置的速度分布,然后再把计算得到的速度分布写入边界当中。
首先我们运行postProcess -time 0 -func writeCellCentres命令,就可以在0文件夹下得到4个文件,分别是C,Cx,Cy,Cz。其中C文件包含了单元的x,y,z所有坐标,而Cx只对应x坐标,Cy对应y坐标,Cz对应z坐标。这里我们只需要Cx,我们打开Cx文件,可以找到如下图的字典:
我们可以将字典里面的x坐标信息提取出来,然后在脚本(当然也可以用Excel等其他工具)根据速度分布的公式,计算出各个单元的速度,然后我们再将计算的结果用nonuniform List形式写回到U文件中对应的边界。修改以后的U文件如下:
接着我们设置controlDict文件
fvSchemes文件修改如下:
fvSolution文件修改如下:
回到算例文件夹下,打开终端,由于我安装了PyFoam来实时输出残差,所以在终端中输入pyFoamPlotRunner.py --clear simpleFoam开始计算:
等到计算结束
将计算结果导入paraview里面进行处理
流线图
tecplot的处理结果
我们需要得到出口的体积流量和入口的体积流量之比,这里我们有两种方法进行操作
第一种方法是直接在OpenFOAM当中利用OpenFOAM自带的后处理命令输出入口和出口的体积流量,格式如下:
postProcess -func "flowRatePatch(name=边界名称)"
我们输出收敛后(加上参数-latestTime)入口处的体积流量:
postProcess -latestTime -func "flowRatePatch(name=INLET)"
我们输出收敛后(加上参数-latestTime)顶部出口处的体积流量:
postProcess -latestTime -func "flowRatePatch(name= OUTLET_TWO)"
点击进去以后,里面会有两个我们刚才命令生成的两个边界的流量的文件夹
任选其中一个文件夹(我们以“flowRatePatch(name=INLET)”文件夹为例),打开到底,则存在surfaceFieldValue.dat文件
打开surfaceFieldValue.dat文件
说明一下:这里的正负号只代表方向,不代表大小,负号表示流入计算域。
第二种方法是将计算结果导入ParaView里面,通过对指定面的积分,计算通过该面的体积流量
而实验值为:0.887
计算值与实验值的比为: