流体的物性参数为:
密度:1kg/m3
粘度系数:0.01N·s/m2
首先进行建模操作,任何建模软件均可,本算例在ICEM建模和进行网格划分,生成的网格如下:
接下来转入OpenFOAM的操作:
首先新建一个文件夹,名字任取,本算例中我将该文件夹命名为:cylinder
然后进入OpenFOAM的安装目录,将安装目录下的wingMotion算例(我的目录为/opt/openfoam5/tutorials/ incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam)下的0.orig文件夹、constant文件夹和system文件夹拷贝到cylinder文件夹下,将0.orig文件夹重命名为0,删除0文件夹下的include文件夹, k,nut, omega这些文件,因为本算例不会用到这些文件夹和文件。
然后将刚才导出的网格文件拷贝到cylinder文件夹下,在cylinder文件夹下打开终端,输入fluentMeshToFoam命令(由于从ICEM当中导出模型的时候就已经进行了缩放,所以这里不用缩放网格):
我们打开constant文件夹
接着我们打开polyMesh文件夹,对其中的boundary文件进行编辑,将UP和DOWN边界的Type改为symmetry,记得后面一定要跟上分号,否则后面计算会报错
transportProperties文件修改如下:
设置运动黏度为0.01m2/s
然后我们拷贝oscillatingBox下的dynamicMeshDict字典(我的路径是/opt/openfoam5/tutorials/multiphase
/potentialFreeSurfaceDyMFoam/oscillatingBox/constant/dynamicMeshDict)到constant文件夹下,覆盖当前的dynamicMeshDict,修改覆盖后的dynamicMeshDict文件如下:
接着修改turbulenceProperties文件,此处我们将模拟类型设置为层流(laminar)
然后对初始边界条件进行设置,下面转入0文件夹下进行操作:
修改0文件夹下p、U和pointDisplacement文件:
p文件当中的内容如下:
U文件当中的内容如下:
p和U文件参数的具体含义,详见http://blog.sina.com.cn/s/blog_14d64daa10102wskl.html
pointDisplacement文件当中的内容如下:
说明一下:比起其他求解器多出来的pointDisplacement字典主要用于指定边界的位移,本算例我们指定圆柱的位移为oscillatingDisplacement类型,那么也就是说圆柱的运动满足表达式y=Asin(ωt),其中amplitude为振幅,这里为一个向量,用于指定边界运动的最大位移,对应表达式中的A,本算例我们指定圆柱在Y方向上下振动,在Y方向的最大位移为2米,所以
amplitude (0 2 0);
而omega关键词对应表达式中的ω
其他的边界不运动,所以
".*"
{
type fixedValue;
value uniform (0 0 0);
}
接着我们设置controlDict文件
限制库朗数不超过0.9
fvSchemes文件修改如下:
fvSolution文件修改如下:
为了加快计算,我们采用分块并行计算
因为system目录下已存在decomposeParDict字典,所以我们可以在终端中输入decomposePar直接进行分块:
在终端中输入mpirun -np 4 pimpleDyMFoam -parallel开始计算:
等到计算结束:
将计算结果导入paraview里面进行处理