OpenFOAM-圆柱绕流
原版视频下载地址:https://yunpan.cn/c64yrdt9J5LmQ 访问密码 0128
首先进行建模操作,任何建模软件均可,本教程采用ICEM直接建模,模型尺寸如下:
建成的模型如下:
对建好的模型进行网格划分,划分完成的网格如下:
对圆柱的近壁面进行了加密处理,将划分的网格导出为ASCII的.msh格式(注:二进制的.msh格式OpenFOAM是不支持网格转换的)
接下来转入OpenFOAM的操作:
首先新建一个文件夹,名字任取,本教程中我将该文件夹命名为:train
然后进入OpenFOAM的安装目录下查找一个tutorial的文件夹,然后按照:
icoFoam求解是用来求解不可压缩牛顿层流,虽然最后为稳态,但是也可以通过计算瞬态来达到稳态。我们只需要拷贝icoFoam文件夹下的任意一个算例的0文件夹、constant文件夹和system文件夹。这里我们选择cavity算例文件夹下的三个文件夹,将他们拷贝到刚才新建的train文件夹下,然后将刚才导出的网格文件拷贝到train文件夹下,在trian文件夹下打开终端,输入fluentMeshToFoam命令:
然后开始进行转换
转换完成后,constan文件夹下会多出一个polyMesh文件夹
我们打开polyMesh文件夹,对其中的boundary文件进行编辑,将UP和DOWN边界的Type改为symmetry,记得后面一定要跟上分号,否则后面计算会报错
我们查看constant文件夹下的transportproperties文件,此处我们设置运动黏度为0.01m2/s
文件如下:
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
nu [0 2 -1 0 0 0 0] 0.01;
// ************************************************************************* //
然后对初始边界条件进行设置,下面转入0文件夹下进行操作:
在0文件夹下我们可以看到U和P两个文件:
边界条件如图所示:
我们设置来流速度为0.1m/s,则接下来修改P文件和U文件
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 freestreamPressure;
}
OUTLET
{
type freestreamPressure;
}
UP
{
type symmetry;
}
DOWN
{
type symmetry;
}
CYLINDER
{
type zeroGradient;
}
frontAndBackPlanes
{
type empty;
}
}
// ************************************************************************* //
U文件当中的内容如下修改:
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0.1 0 0);
boundaryField
{
INLET
{
type freestream;
freestreamValue uniform (0.1 0 0);
}
OUTLET
{
type freestream;
freestreamValue uniform (0.1 0 0);
}
UP
{
type symmetry;
}
DOWN
{
type symmetry;
}
CYLINDER
{
type fixedValue;
value uniform (0 0 0);
}
frontAndBackPlanes
{
type empty;
}
}
// ************************************************************************* //
说明一下:
fixedValue
基本格式为:
边界名称
{
type fixedValue;
value uniform 向量;
}
说明:
该边界无需多说,在边界上的值为固定值,不可变动,只需要写入类似(0,0,0)这样的向量即可。对于不可压缩求解器来说,该种边界是稳定边界。
freestream
基本格式为:
边界名称
{
type freestream;
freestreamValue uniform 向量值;
}
说明:
该边界是一种fixedValue和zeroGradient的混合边界,该边界比起fixedValue边界更加灵活。出流时为zeroGradient边界,入流时则为fixedValue边界。该边界条件广泛应用于外流场的模拟当中。
freestreamPressure
基本格式:
边界名称
{
type freestreamPressure;
}
说明:
一般压力边界设置为freestreamPressure,那么对应边界的压力边界就需要设置为freestream。该边界是一种zeroGradient边界,但是在边界需要保证ρ×Sf×freestreamValue(质量流量)的值为常数。(注:Sf是边界单元的面积)
symmetry
基本格式:
边界名称
{
type symmetry;
}
说明:
对称边界条件主要用于消除边界对流场计算的影响,可以将此边界想象为一面镜子,来什么反弹什么。
empty
基本格式:
边界名称
{
type empty;
}
说明:
该边界主要二维模拟。
我们进入system文件夹下找到controldict文件,我们修改此文件:
文件内容如下:
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application icoFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 1000;
deltaT 0.01;
writeControl runTime;
writeInterval 10;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable true;
// ************************************************************************* //
最后回到train文件夹下,打开终端,输入icoFoam开始计算
等到计算结束
然后可将计算结果导入paraview或者tecplot当中进行后处理
教程到此结束,未尽事宜,可参考视频教程。